Interesting This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.

Load Packages and Data

#- Load files and libraries -#
suppressPackageStartupMessages(library("dplyr"))
suppressPackageStartupMessages(library("pcaMethods"))
suppressPackageStartupMessages(library("factoextra"))
suppressPackageStartupMessages(library("rgl"))
suppressPackageStartupMessages(library("pca3d"))
suppressPackageStartupMessages(library("randomForest"))
suppressPackageStartupMessages(library("caret"))
suppressPackageStartupMessages(library("cluster"))
suppressPackageStartupMessages(library("RColorBrewer"))
suppressPackageStartupMessages(library("plot3D"))
suppressPackageStartupMessages(library("plotly"))
suppressPackageStartupMessages(library("randomForest"))
suppressPackageStartupMessages(library("caret"))
suppressPackageStartupMessages(library("doParallel"))

Load Data

#- Load Data -#
setwd('/Users/ravinschmidl/Desktop/Systems_Bio/Scientific_Programming/Data')
df <- read.csv('Breast_GSE45827.csv', check.names = FALSE)

Data Exploration

what does the data look like?

Investigating Data Types

print(paste0("Number of Unique Types: ", length(unique(df$type))))
[1] "Number of Unique Types: 6"
table(df$type)

    basal cell_line       HER luminal_A luminal_B    normal 
       41        14        30        29        30         7 
barplot(sort(table(df$type)), xlab  = "Tissue Type", 
        ylab = "Count",
        main = "Number of Samples per Type" 
        )

  • Based on the above distribution, it seems that normal, cell_line and basal types contain too few/many samples.
df_frame <- data.frame(matrix(unlist(df), nrow=length(df), byrow=T))
df_frame <- t(df_frame)
df_frame2 <- df_frame[,-(1:2)]
#df_frame3 <- as.numeric(unlist(df_frame2))

Checking the number of NA’s, negatives and unique samples


print(paste0("Number of Na values: ", sum(is.na(df))))
[1] "Number of Na values: 0"
print(paste0("Number of Negative values: ", sum(df_frame2 < 0)))
[1] "Number of Negative values: 0"
print(paste0("Number of ID's: ", length(df$samples)))
[1] "Number of ID's: 151"
print(paste0("Number of Unique ID's: ", length(unique(df$samples))))
[1] "Number of Unique ID's: 151"

Figure out and visualise spread of data.

hist(df_frame2, breaks = 1e6, xlim = c(0,20), main = "Entire Dataset")

Figure out and visualise spread of data within classes.

df_basal <- df[df$type == 'basal',]
df_basal2 <- data.frame(matrix(unlist(df_basal), nrow=length(df_basal), byrow=T))
df_basal2 <- t(df_basal2)
df_basal2 <- df_basal2[,-(1:2)]
#df_basal3 <- as.numeric(unlist(df_basal2))

df_normal <- df[df$type == 'normal',]
df_normal2 <- data.frame(matrix(unlist(df_normal), nrow=length(df_normal), byrow=T))
df_normal2 <- t(df_normal2)
df_normal2 <- df_normal2[,-(1:2)]
#df_normal3 <- as.numeric(unlist(df_normal2))

df_cell_line <- df[df$type == 'cell_line',]
df_cell_line2 <- data.frame(matrix(unlist(df_cell_line), nrow=length(df_cell_line), byrow=T))
df_cell_line2 <- t(df_cell_line2)
df_cell_line2 <- df_cell_line2[,-(1:2)]
#df_cell_line3 <- as.numeric(unlist(df_cell_line2))

df_HER <- df[df$type == 'HER',]
df_HER2 <- data.frame(matrix(unlist(df_HER), nrow=length(df_HER), byrow=T))
df_HER2 <- t(df_HER2)
df_HER2 <- df_HER2[,-(1:2)]
#df_HER3 <- as.numeric(unlist(df_HER2))

df_luminal_A <- df[df$type == 'luminal_A',]
df_luminal_A2 <- data.frame(matrix(unlist(df_luminal_A), nrow=length(df_luminal_A), byrow=T))
df_luminal_A2 <- t(df_luminal_A2)
df_luminal_A2 <- df_luminal_A2[,-(1:2)]
#df_luminal_A3 <- as.numeric(unlist(df_luminal_A))

df_luminal_B <- df[df$type == 'luminal_B',]
df_luminal_B2 <- data.frame(matrix(unlist(df_luminal_B), nrow=length(df_luminal_B), byrow=T))
df_luminal_B2 <- t(df_luminal_B2)
df_luminal_B2 <- df_luminal_B2[,-(1:2)]
#df_luminal_B3 <- as.numeric(unlist(df_luminal_B2))

par(mfrow=c(2,3))
hist(df_basal2, breaks = 1e6, xlim = c(0,20), main = "Basal")
hist(df_normal2, breaks = 1e6, xlim = c(0,20), main = "Normal")
hist(df_cell_line2, breaks = 1e6, xlim = c(0,20), main = "Cell Line")
hist(df_HER2, breaks = 1e6, xlim = c(0,20), main = "HER")
hist(df_luminal_A2, breaks = 1e6, xlim = c(0,20), main = "Luminal A")
hist(df_luminal_B2, breaks = 1e6, xlim = c(0,20), main = "Luminal B")

  • We can see that the data seems to be quite skewed, so we will have to scale/normalise the data before proceeding.

  • Maybe we should see what it looks like only with luminal-A, luminal-B and HER.

df_lalbher <- subset(df, type == "HER" | type == "luminal_A" | type == "luminal_B")

df_lalbher2 <- data.frame(matrix(unlist(df_lalbher), nrow=length(df_lalbher), byrow=T))
df_lalbher2 <- t(df_lalbher2)
df_lalbher2 <- df_lalbher2[,-(1:2)]
#df_lalbher3 <- as.numeric(unlist(df_lalbher2))

hist(df_lalbher2, breaks = 1e6, xlim = c(0,20), main = "Luminal A, Luminal B and HER Dataset")

#qqnorm(df_lalbher2, pch = 1, frame = FALSE)
  • Hm, interesting; looks just the same

Prepocessing

Log transforming the data.

df_log <- log(df_frame2, 2)

First plot the histogram of Log-Scaled Data

hist(df_log, breaks = 1e6, xlim = c(0,5), main = "Log Transformed Data")

df_lalbher2_log <- log(df_lalbher2, 2)

First plot the histogram of Log-Scaled Data

hist(df_lalbher2_log, breaks = 1e6, xlim = c(0,5), main = "Log Transformed Data LALBHER")

PCA

2-Dimensional PCA plots

df.PCA <- prcomp(df_log, scale = FALSE, center = TRUE)
#df.PCA2 <- pca(df_log, scale = "none", center = TRUE)
summary(df.PCA)
Importance of components:
                           PC1     PC2     PC3     PC4     PC5    PC6
Standard deviation     13.3621 10.8961 8.41007 6.55329 5.83188 5.6520
Proportion of Variance  0.1537  0.1022 0.06089 0.03697 0.02928 0.0275
Cumulative Proportion   0.1537  0.2559 0.31680 0.35377 0.38304 0.4105
                           PC7     PC8    PC9    PC10    PC11    PC12
Standard deviation     5.29667 4.94107 4.7599 4.10289 3.65966 3.61378
Proportion of Variance 0.02415 0.02102 0.0195 0.01449 0.01153 0.01124
Cumulative Proportion  0.43470 0.45571 0.4752 0.48971 0.50124 0.51248
                          PC13    PC14    PC15    PC16    PC17    PC18
Standard deviation     3.42634 3.35495 3.27017 3.23508 3.16920 3.10731
Proportion of Variance 0.01011 0.00969 0.00921 0.00901 0.00865 0.00831
Cumulative Proportion  0.52259 0.53228 0.54148 0.55049 0.55914 0.56745
                          PC19    PC20    PC21    PC22    PC23    PC24
Standard deviation     3.01465 2.98958 2.97337 2.94583 2.88675 2.84705
Proportion of Variance 0.00782 0.00769 0.00761 0.00747 0.00717 0.00698
Cumulative Proportion  0.57527 0.58297 0.59058 0.59805 0.60522 0.61220
                          PC25    PC26   PC27   PC28    PC29    PC30
Standard deviation     2.77204 2.75936 2.7272 2.6845 2.67561 2.66357
Proportion of Variance 0.00661 0.00655 0.0064 0.0062 0.00616 0.00611
Cumulative Proportion  0.61881 0.62537 0.6318 0.6380 0.64414 0.65025
                          PC31    PC32    PC33    PC34    PC35    PC36
Standard deviation     2.63154 2.61656 2.59045 2.53658 2.52201 2.50095
Proportion of Variance 0.00596 0.00589 0.00578 0.00554 0.00548 0.00538
Cumulative Proportion  0.65621 0.66210 0.66788 0.67342 0.67889 0.68428
                          PC37    PC38    PC39    PC40    PC41    PC42
Standard deviation     2.49155 2.47160 2.43635 2.41376 2.39528 2.37208
Proportion of Variance 0.00534 0.00526 0.00511 0.00502 0.00494 0.00484
Cumulative Proportion  0.68962 0.69488 0.69999 0.70500 0.70994 0.71479
                          PC43    PC44    PC45   PC46    PC47    PC48
Standard deviation     2.36999 2.32991 2.32589 2.3110 2.27293 2.24975
Proportion of Variance 0.00484 0.00467 0.00466 0.0046 0.00445 0.00436
Cumulative Proportion  0.71962 0.72430 0.72895 0.7336 0.73800 0.74236
                          PC49    PC50    PC51    PC52    PC53    PC54
Standard deviation     2.24341 2.22422 2.20508 2.19531 2.17026 2.16091
Proportion of Variance 0.00433 0.00426 0.00419 0.00415 0.00405 0.00402
Cumulative Proportion  0.74669 0.75095 0.75513 0.75928 0.76334 0.76736
                          PC55   PC56    PC57    PC58   PC59   PC60
Standard deviation     2.15311 2.1283 2.11873 2.11152 2.1004 2.0745
Proportion of Variance 0.00399 0.0039 0.00386 0.00384 0.0038 0.0037
Cumulative Proportion  0.77135 0.7752 0.77911 0.78295 0.7867 0.7904
                          PC61    PC62   PC63   PC64    PC65    PC66
Standard deviation     2.06598 2.05510 2.0449 2.0153 2.01240 1.99197
Proportion of Variance 0.00367 0.00364 0.0036 0.0035 0.00349 0.00342
Cumulative Proportion  0.79413 0.79776 0.8014 0.8049 0.80834 0.81176
                          PC67    PC68    PC69    PC70    PC71    PC72
Standard deviation     1.97145 1.96675 1.96156 1.95135 1.94003 1.93377
Proportion of Variance 0.00335 0.00333 0.00331 0.00328 0.00324 0.00322
Cumulative Proportion  0.81511 0.81844 0.82175 0.82503 0.82827 0.83148
                          PC73    PC74    PC75    PC76    PC77    PC78
Standard deviation     1.91516 1.90303 1.88691 1.87889 1.87398 1.87016
Proportion of Variance 0.00316 0.00312 0.00307 0.00304 0.00302 0.00301
Cumulative Proportion  0.83464 0.83776 0.84082 0.84386 0.84689 0.84990
                         PC79    PC80   PC81    PC82    PC83   PC84
Standard deviation     1.8678 1.85137 1.8363 1.83237 1.81591 1.8033
Proportion of Variance 0.0030 0.00295 0.0029 0.00289 0.00284 0.0028
Cumulative Proportion  0.8529 0.85585 0.8588 0.86164 0.86448 0.8673
                          PC85    PC86    PC87    PC88    PC89    PC90
Standard deviation     1.79106 1.78659 1.78342 1.77867 1.76627 1.75312
Proportion of Variance 0.00276 0.00275 0.00274 0.00272 0.00269 0.00265
Cumulative Proportion  0.87004 0.87279 0.87553 0.87825 0.88094 0.88359
                          PC91   PC92    PC93    PC94    PC95    PC96
Standard deviation     1.74303 1.7383 1.72746 1.71831 1.71576 1.70206
Proportion of Variance 0.00262 0.0026 0.00257 0.00254 0.00253 0.00249
Cumulative Proportion  0.88620 0.8888 0.89137 0.89391 0.89645 0.89894
                          PC97    PC98    PC99   PC100   PC101   PC102
Standard deviation     1.69622 1.68490 1.67892 1.67553 1.65458 1.64962
Proportion of Variance 0.00248 0.00244 0.00243 0.00242 0.00236 0.00234
Cumulative Proportion  0.90142 0.90386 0.90629 0.90870 0.91106 0.91340
                         PC103   PC104   PC105   PC106   PC107   PC108
Standard deviation     1.64444 1.63842 1.63150 1.62375 1.61984 1.60954
Proportion of Variance 0.00233 0.00231 0.00229 0.00227 0.00226 0.00223
Cumulative Proportion  0.91573 0.91804 0.92033 0.92260 0.92486 0.92709
                         PC109   PC110   PC111   PC112   PC113   PC114
Standard deviation     1.60461 1.59469 1.59252 1.57311 1.56760 1.56672
Proportion of Variance 0.00222 0.00219 0.00218 0.00213 0.00212 0.00211
Cumulative Proportion  0.92931 0.93150 0.93368 0.93581 0.93793 0.94004
                         PC115   PC116   PC117   PC118   PC119   PC120
Standard deviation     1.55294 1.54638 1.53863 1.53057 1.52660 1.52064
Proportion of Variance 0.00208 0.00206 0.00204 0.00202 0.00201 0.00199
Cumulative Proportion  0.94212 0.94418 0.94621 0.94823 0.95024 0.95223
                         PC121   PC122   PC123  PC124   PC125   PC126
Standard deviation     1.51440 1.50093 1.49880 1.4861 1.48325 1.47501
Proportion of Variance 0.00197 0.00194 0.00193 0.0019 0.00189 0.00187
Cumulative Proportion  0.95420 0.95614 0.95807 0.9600 0.96187 0.96374
                         PC127   PC128   PC129   PC130   PC131   PC132
Standard deviation     1.46169 1.45465 1.43642 1.42863 1.42349 1.41696
Proportion of Variance 0.00184 0.00182 0.00178 0.00176 0.00174 0.00173
Cumulative Proportion  0.96558 0.96740 0.96918 0.97094 0.97268 0.97441
                         PC133   PC134   PC135   PC136   PC137   PC138
Standard deviation     1.40818 1.39446 1.38769 1.38003 1.37529 1.35117
Proportion of Variance 0.00171 0.00167 0.00166 0.00164 0.00163 0.00157
Cumulative Proportion  0.97612 0.97779 0.97945 0.98109 0.98272 0.98429
                         PC139   PC140   PC141   PC142   PC143   PC144
Standard deviation     1.33346 1.32465 1.29513 1.29062 1.26904 1.24657
Proportion of Variance 0.00153 0.00151 0.00144 0.00143 0.00139 0.00134
Cumulative Proportion  0.98582 0.98733 0.98877 0.99021 0.99159 0.99293
                         PC145   PC146   PC147   PC148   PC149   PC150
Standard deviation     1.22184 1.20418 1.19007 1.16322 1.14666 1.08873
Proportion of Variance 0.00129 0.00125 0.00122 0.00116 0.00113 0.00102
Cumulative Proportion  0.99422 0.99546 0.99668 0.99785 0.99898 1.00000
                           PC151
Standard deviation     3.203e-14
Proportion of Variance 0.000e+00
Cumulative Proportion  1.000e+00
#summary(df.PCA2)
type <- factor(df[,2])
#pca3d <- pca3d(df.PCA, group = type)sum

Here are various Principal Components plotted against eachother.

fig1 <- plot_ly(x = df.PCA[["x"]][,1], y = df.PCA[["x"]][,2], type = "scatter", momde = "markers", color = type)

fig2 <- plot_ly(x = df.PCA[["x"]][,1], y = df.PCA[["x"]][,3], type = "scatter", momde = "markers", color = type)

fig3 <- plot_ly(x = df.PCA[["x"]][,1], y = df.PCA[["x"]][,4], type = "scatter", momde = "markers", color = type)

fig4 <- plot_ly(x = df.PCA[["x"]][,1], y = df.PCA[["x"]][,5], type = "scatter", momde = "markers", color = type)

fig5 <- plot_ly(x = df.PCA[["x"]][,2], y = df.PCA[["x"]][,3], type = "scatter", momde = "markers", color = type)

fig6 <- plot_ly(x = df.PCA[["x"]][,2], y = df.PCA[["x"]][,4], type = "scatter", momde = "markers", color = type)

fig7 <- plot_ly(x = df.PCA[["x"]][,2], y = df.PCA[["x"]][,5], type = "scatter", momde = "markers", color = type)

fig8 <- plot_ly(x = df.PCA[["x"]][,3], y = df.PCA[["x"]][,4], type = "scatter", momde = "markers", color = type)

fig9 <- plot_ly(x = df.PCA[["x"]][,3], y = df.PCA[["x"]][,5], type = "scatter", momde = "markers", color = type)

fig10 <- plot_ly(x = df.PCA[["x"]][,4], y = df.PCA[["x"]][,5], type = "scatter", momde = "markers", color = type)

subplot(fig1, fig2)
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
`arrange_()` is deprecated as of dplyr 0.7.0.
Please use `arrange()` instead.
See vignette('programming') for more help
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'

subplot(fig3, fig4)
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'

subplot(fig5, fig6)
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'

subplot(fig7, fig8)
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'

subplot(fig9, fig10)
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
'scatter' objects don't have these attributes: 'momde'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'

3-Dimensional PCA plots

f <- list(
  family = "Courier New, monospace",
  size = 18,
  color = "#7f7f7f"
)
x <- list(
  title = "PC1",
  titlefont = f
)
y <- list(
  title = "PC2",
  titlefont = f
)

z <- list(
  title = "PC3",
  titlefont = f
)
fig11 <- plot_ly(x = df.PCA[["x"]][,1], 
                 y = df.PCA[["x"]][,2], 
                 z = df.PCA[["x"]][,3], 
                 type="scatter3d", mode="markers", color=type)
Error in plot_ly(x = df.PCA[["x"]][, 1], y = df.PCA[["x"]][, 2], z = df.PCA[["x"]][,  : 
  object 'df.PCA' not found
x2 <- list(
  title = "PC2",
  titlefont = f
)
y2 <- list(
  title = "PC3",
  titlefont = f
)

z2 <- list(
  title = "PC4",
  titlefont = f
)
fig12 <- plot_ly(x = df.PCA[["x"]][,2], y = df.PCA[["x"]][,3], z = df.PCA[["x"]][,4], type="scatter3d", mode="markers", color=type)
fig12 <- fig12 %>% layout(scene = list(xaxis = x2, yaxis = y2, zaxis = z2), title = "3D PCA clustering with type labelled")
fig12

Random Forest

Unsupervised Random Forest

  • randomForest(formulalr, data) OR randomForest(x, y, xtest, ytest, ntree, mtry)
  • If using the second formula, we can omit y, forcing the formula to run an unsupervised random forest.
#- Clear global environment and reload packages-#
rm(list=setdiff(ls(), "df"))
#- Load files and libraries -#

#Package names
packages <- c("dplyr", "pcaMethods", "factoextra", "rgl", "pca3d", "randomForest", "caret", "cluster", "RColorBrewer", "plot3D", "plotly", "doParallel", "influential", "igraph", "ggraph", "randomForestExplainer")

#Install packages not yet installed
installed_packages <- packages %in% rownames(installed.packages())
if (any(installed_packages == FALSE)) {
  install.packages(packages[!installed_packages])
}

#Packages loading
invisible(lapply(packages, library, character.only = TRUE))

Attaching package: ‘dplyr’

The following object is masked from ‘package:Biobase’:

    combine

The following objects are masked from ‘package:BiocGenerics’:

    combine, intersect, setdiff, union

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

Loading required package: ggplot2
Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
Registered S3 methods overwritten by 'htmltools':
  method               from         
  print.html           tools:rstudio
  print.shiny.tag      tools:rstudio
  print.shiny.tag.list tools:rstudio
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio
randomForest 4.6-14
Type rfNews() to see new features/changes/bug fixes.

Attaching package: ‘randomForest’

The following object is masked from ‘package:ggplot2’:

    margin

The following object is masked from ‘package:dplyr’:

    combine

The following object is masked from ‘package:Biobase’:

    combine

The following object is masked from ‘package:BiocGenerics’:

    combine

Loading required package: lattice
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout

Loading required package: foreach
Loading required package: iterators

Attaching package: ‘igraph’

The following object is masked from ‘package:plotly’:

    groups

The following objects are masked from ‘package:dplyr’:

    as_data_frame, groups, union

The following objects are masked from ‘package:BiocGenerics’:

    normalize, path, union

The following objects are masked from ‘package:stats’:

    decompose, spectrum

The following object is masked from ‘package:base’:

    union

Registered S3 method overwritten by 'GGally':
  method from   
  +.gg   ggplot2
setwd('/Users/ravinschmidl/Desktop/Systems_Bio/Scientific_Programming/Data')
The working directory was changed to /Users/ravinschmidl/Desktop/Systems_Bio/Scientific_Programming/Data inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
#Log2  transform the data
df_frame <- data.frame(matrix(unlist(df), nrow=length(df), byrow = T))
df_frame <- t(df_frame)
df_frame2 <- df_frame[,-(1:2)]
#df_frame3 <- as.numeric(unlist(df_frame2))
df_log <- log(df_frame2, 2)
#- Tune Random Forest Parameters -#
set.seed(123)
t <- tuneRF(df_log[,-22], df_log[,22], 
                    stepFactor = 0.5,
                    plot = TRUE,
                    mtryStart = 8,
                    ntreeTry = 801, 
                    trace = TRUE, 
                    improve = 0.05)
cl <- makePSOCKcluster(5) 
  
registerDoParallel(cl) 
set.seed(123)
rf.fit <- randomForest(x = df_log, y = NULL, 
                       mtry = 16, ntree = 801, proximity = TRUE, oob.prox = TRUE)
stopCluster(cl)
#- Getting prediction -#
type <- factor(df[,2])
prox <- rf.fit$proximity
pam.rf <- pam(prox, 6)
pred <- cbind(pam.rf$clustering, type)
#table(pred[,2], pred[,1])
confusionMatrix(table(pred[,2], pred[,1]))

hclust.rf <- hclust(as.dist(1-rf.fit$proximity))
rf.cluster = cutree(hclust.rf, k=6)
df_log$rf.clusters <- rf.cluster
table(rf.cluster, type)
confusionMatrix(table(rf.cluster, type))
#- 2-D MDS plot (Dim1 vs Dim2) -#
mds1 <- MDSplot(rf.fit, type, k = 6, 
               pch = 16, palette = c("skyblue", "orange", 
                                     "green", "pink", 
                                     "purple", "black")
               )

clusters_pam <- pam(1 - rf.fit$proximity, k = 6, diss = TRUE)

plot(mds1$points[, 1], mds1$points[, 2], 
     col = c("skyblue", "orange", 
             "green", "pink", 
             "purple", "black")[as.numeric(type)], 
     main = "Type Clustering"
     )

legend("topleft", legend = c("basal", "cell_line", 
                             "HER", "luminal_A", 
                             "luminal_B", "normal"), 
       pch = 16, col = c("skyblue", "orange", 
                         "green", "pink", 
                         "purple", "black"), 
       title = "Legend"
       )
#- 2-D MDS plot (Dim1 vs Dim3) -#

clusters_pam <- pam(1 - rf.fit$proximity, k = 6, diss = TRUE)

plot(mds1$points[, 1], mds1$points[, 3], 
     col = c("skyblue", "orange", 
             "green", "pink", 
             "purple", "black")[as.numeric(type)], 
     main = "Type Clustering"
     )

legend("topleft", legend = c("basal", "cell_line", 
                             "HER", "luminal_A", 
                             "luminal_B", "normal"), 
       pch = 16, col = c("skyblue", "orange", 
                         "green", "pink", 
                         "purple", "black"), 
       title = "Legend")
#- 2-D MDS plot (other dimensions) -#
fig13 <- plot_ly(x = mds1[["points"]][,1], y = mds1[["points"]][,2], 
                 type="scatter", mode="markers", color = type)

fig14 <- plot_ly(x = mds1[["points"]][,2], y = mds1[["points"]][,3], 
                 type="scatter", mode="markers", color = type)

fig15 <- plot_ly(x = mds1[["points"]][,2], y = mds1[["points"]][,4], 
                 type="scatter", mode="markers", color = type)

fig16 <- plot_ly(x = mds1[["points"]][,2], y = mds1[["points"]][,5], 
                 type="scatter", mode="markers", color = type)

subplot(fig13, fig14)
Error in unique.default(x) : unique() applies only to vectors
#- 3-D MDS plot -#
x3 <- list(
  title = "Dim1"
)
y3 <- list(
  title = "Dim2"
)

z3 <- list(
  title = "Dim3"
)

clusters_pam_f <- factor(clusters_pam$clustering)
Error in factor(clusters_pam$clustering) : 
  object 'clusters_pam' not found

Supervised Random Forest

  • Based on the previous diagrams and depending on the results of the upcoming supervised RF performed on all separate classes, I might combine luminal_A and luminal_B into one class named luminal
#- Clear global environment and reload packages -#
rm(list=setdiff(ls(), "df"))

#- Load files and libraries -#

# Package names #
packages <- c("dplyr", "pcaMethods", "factoextra", "rgl", "pca3d", "randomForest", "caret", "cluster", "RColorBrewer", "plot3D", "plotly", "doParallel", "influential", "igraph", "ggraph", "randomForestExplainer")

# Install packages not yet installed #
installed_packages <- packages %in% rownames(installed.packages())
if (any(installed_packages == FALSE)) {
  install.packages(packages[!installed_packages])
}

# Packages loading #
invisible(lapply(packages, library, character.only = TRUE))
#- Log Transform Data -#
df2 <- df
df2[,-c(1,2)] <- log(df2[,-c(1,2)], 2)

#- Create Training and Test Data  -#
set.seed(998)
inTrain <- createDataPartition(df2$samples, p = 0.75, list = FALSE)
df_train <- df2[inTrain,]
df_test <- df2[-inTrain,]
#- Check Training and Test Data -#
print(paste0("Dim of Df: ", 
             dim(df2[,-c(1,2)])
             )
      )
[1] "Dim of Df: 151"   "Dim of Df: 54675"
print(paste0("Dim of Df_train: ", 
             dim(df_train[,-c(1,2)])
             )
      )
[1] "Dim of Df_train: 115"   "Dim of Df_train: 54675"
print(paste0("df_train/df_log = ",
             dim(df_train[,-c(1,2)])[1] / dim(df2[,-c(1,2)])[1] * 100, 
             " %"
             )
      )
[1] "df_train/df_log = 76.158940397351 %"
print(paste0("Dim of Df_test: ", 
             dim(df_test[,-c(1,2)])
             )
      )
[1] "Dim of Df_test: 36"    "Dim of Df_test: 54675"
print(paste0("df_test/df_log = ",
             dim(df_test[,-c(1,2)])[1] / dim(df2[,-c(1,2)])[1] * 100, 
             " %"
             )
      )
[1] "df_test/df_log = 23.841059602649 %"
#- Create factor of labels -#
train_labels <- factor(df_train[,2])

test_labels <- factor(df_test[,2])
#- RF Parameter Tuning -#
cl <- makePSOCKcluster(5) 
  
registerDoParallel(cl) 
set.seed(123)
t2 <- tuneRF(df_train[,-22], df_train[,22], 
                    stepFactor = 0.5,
                    plot = TRUE,
                    mtryStart = 10,
                    ntreeTry = 801, 
                    trace = TRUE, 
                    improve = 0.05)
mtry = 10  OOB error = 0.02490292 
Searching left ...
mtry = 20   OOB error = 0.02430085 
0.02417691 0.05 
Searching right ...
mtry = 5    OOB error = 0.02500719 
-0.004186731 0.05 

stopCluster(cl)
#- Run Random Forest -#
cl <- makePSOCKcluster(5) 
  
registerDoParallel(cl) 
set.seed(123)
rf.fit2 <- randomForest(df_train[,-c(1,2)], train_labels, 
                        mtry = 10, ntree = 1001, 
                        proximity = TRUE, oob.prox = TRUE,
                        localImp = TRUE)  

stopCluster(cl)

rf.fit2

Call:
 randomForest(x = df_train[, -c(1, 2)], y = train_labels, ntree = 1001,      mtry = 10, localImp = TRUE, proximity = TRUE, oob.prox = TRUE) 
               Type of random forest: classification
                     Number of trees: 1001
No. of variables tried at each split: 10

        OOB estimate of  error rate: 8.7%
Confusion matrix:
          basal cell_line HER luminal_A luminal_B normal class.error
basal        31         0   1         0         0      0  0.03125000
cell_line     0        10   0         0         0      0  0.00000000
HER           2         0  21         0         0      0  0.08695652
luminal_A     0         0   0        21         1      0  0.04545455
luminal_B     0         0   2         3        18      0  0.21739130
normal        0         0   0         1         0      4  0.20000000
#- Plot rf.fit -#
plot(rf.fit2)

  • We can see that the model has a low error rate, lets see the conusion matrix of the predictions of the training set.
#- Plot confusion mmatrix of predictions (-#
confusionMatrix(table(train_labels, rf.fit2$predicted))
Confusion Matrix and Statistics

            
train_labels basal cell_line HER luminal_A luminal_B normal
   basal        31         0   1         0         0      0
   cell_line     0        10   0         0         0      0
   HER           2         0  21         0         0      0
   luminal_A     0         0   0        21         1      0
   luminal_B     0         0   2         3        18      0
   normal        0         0   0         1         0      4

Overall Statistics
                                          
               Accuracy : 0.913           
                 95% CI : (0.8459, 0.9575)
    No Information Rate : 0.287           
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.8906          
                                          
 Mcnemar's Test P-Value : NA              

Statistics by Class:

                     Class: basal Class: cell_line Class: HER
Sensitivity                0.9394          1.00000     0.8750
Specificity                0.9878          1.00000     0.9780
Pos Pred Value             0.9688          1.00000     0.9130
Neg Pred Value             0.9759          1.00000     0.9674
Prevalence                 0.2870          0.08696     0.2087
Detection Rate             0.2696          0.08696     0.1826
Detection Prevalence       0.2783          0.08696     0.2000
Balanced Accuracy          0.9636          1.00000     0.9265
                     Class: luminal_A Class: luminal_B Class: normal
Sensitivity                    0.8400           0.9474       1.00000
Specificity                    0.9889           0.9479       0.99099
Pos Pred Value                 0.9545           0.7826       0.80000
Neg Pred Value                 0.9570           0.9891       1.00000
Prevalence                     0.2174           0.1652       0.03478
Detection Rate                 0.1826           0.1565       0.03478
Detection Prevalence           0.1913           0.2000       0.04348
Balanced Accuracy              0.9144           0.9476       0.99550
  • Overall, it seems to have high accuracy for all of them, however this may be a sign of overfitting.
#- Using Trained Random Forest to predict test set -#
pred = predict(rf.fit2, as.matrix(df_test))
confusionMatrix(table(test_labels, pred))
Confusion Matrix and Statistics

           pred
test_labels basal cell_line HER luminal_A luminal_B normal
  basal         9         0   0         0         0      0
  cell_line     0         4   0         0         0      0
  HER           0         0   7         0         0      0
  luminal_A     0         0   0         7         0      0
  luminal_B     0         0   0         0         7      0
  normal        0         0   0         1         0      1

Overall Statistics
                                          
               Accuracy : 0.9722          
                 95% CI : (0.8547, 0.9993)
    No Information Rate : 0.25            
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.9655          
                                          
 Mcnemar's Test P-Value : NA              

Statistics by Class:

                     Class: basal Class: cell_line Class: HER
Sensitivity                  1.00           1.0000     1.0000
Specificity                  1.00           1.0000     1.0000
Pos Pred Value               1.00           1.0000     1.0000
Neg Pred Value               1.00           1.0000     1.0000
Prevalence                   0.25           0.1111     0.1944
Detection Rate               0.25           0.1111     0.1944
Detection Prevalence         0.25           0.1111     0.1944
Balanced Accuracy            1.00           1.0000     1.0000
                     Class: luminal_A Class: luminal_B Class: normal
Sensitivity                    0.8750           1.0000       1.00000
Specificity                    1.0000           1.0000       0.97143
Pos Pred Value                 1.0000           1.0000       0.50000
Neg Pred Value                 0.9655           1.0000       1.00000
Prevalence                     0.2222           0.1944       0.02778
Detection Rate                 0.1944           0.1944       0.02778
Detection Prevalence           0.1944           0.1944       0.05556
Balanced Accuracy              0.9375           1.0000       0.98571
  • Extremely high accuracy, Signs of overfitting.
prob = predict(rf.fit2, as.matrix(df_test), type = "prob")
prob
         basal  cell_line        HER  luminal_A  luminal_B      normal
4   0.54745255 0.05094905 0.26973027 0.04395604 0.07692308 0.010989011
5   0.60139860 0.03996004 0.24475524 0.02397602 0.08391608 0.005994006
6   0.44855145 0.07792208 0.26173826 0.07892108 0.10789211 0.024975025
8   0.65634366 0.01998002 0.21678322 0.03396603 0.06793207 0.004995005
12  0.71828172 0.02597403 0.13586414 0.04895105 0.06193806 0.008991009
13  0.39560440 0.03196803 0.35264735 0.07292707 0.13086913 0.015984016
20  0.67832168 0.01898102 0.17482517 0.05294705 0.07092907 0.003996004
35  0.47452547 0.01598402 0.27572428 0.08091908 0.12987013 0.022977023
37  0.29770230 0.07092907 0.27672328 0.10389610 0.19880120 0.051948052
46  0.25674326 0.07592408 0.47852148 0.05494505 0.12787213 0.005994006
52  0.16683317 0.04395604 0.50649351 0.11288711 0.15284715 0.016983017
58  0.33266733 0.01098901 0.40659341 0.11988012 0.11488511 0.014985015
63  0.31668332 0.02697303 0.36563437 0.08891109 0.19480519 0.006993007
64  0.35964036 0.01398601 0.37062937 0.12987013 0.11388611 0.011988012
68  0.33566434 0.01198801 0.36463536 0.14285714 0.12187812 0.022977023
69  0.16883117 0.01798202 0.34465534 0.17982018 0.26773227 0.020979021
74  0.22577423 0.48651349 0.09990010 0.04195804 0.12287712 0.022977023
75  0.26573427 0.42657343 0.12787213 0.04295704 0.11488511 0.021978022
78  0.20479520 0.51948052 0.11088911 0.03796204 0.10589411 0.020979021
79  0.13686314 0.59340659 0.10089910 0.03796204 0.11388611 0.016983017
87  0.13286713 0.01298701 0.10989011 0.35364635 0.17482517 0.215784216
91  0.07292707 0.03696304 0.05994006 0.20279720 0.15784216 0.469530470
93  0.08291708 0.01498501 0.13986014 0.50549451 0.24275724 0.013986014
101 0.04595405 0.01198801 0.07592408 0.49650350 0.32867133 0.040959041
111 0.05494505 0.03596404 0.10989011 0.47852148 0.21678322 0.103896104
112 0.06693307 0.01398601 0.11888112 0.53846154 0.18481518 0.076923077
113 0.09890110 0.01298701 0.18781219 0.34565435 0.33966034 0.014985015
114 0.11588412 0.04195804 0.12887113 0.45854146 0.19980020 0.054945055
116 0.06593407 0.03596404 0.10389610 0.39060939 0.36763237 0.035964036
124 0.20379620 0.02497502 0.18281718 0.15884116 0.40459540 0.024975025
130 0.07792208 0.01198801 0.16683317 0.33866134 0.39060939 0.013986014
131 0.09090909 0.02097902 0.16783217 0.23376623 0.46253746 0.023976024
136 0.15484515 0.03796204 0.19380619 0.14385614 0.44755245 0.021978022
140 0.12587413 0.03796204 0.21878122 0.17082917 0.43256743 0.013986014
141 0.07892108 0.05094905 0.14885115 0.28171828 0.34165834 0.097902098
145 0.14485514 0.02197802 0.23876124 0.20179820 0.36063936 0.031968032
attr(,"class")
[1] "matrix" "votes" 
#- 2-D MDS plot (Dim1 vs Dim2) -#
mds2 <- MDSplot(rf.fit2, train_labels, k = 6, 
               pch = 16, palette = c("skyblue", "orange", 
                                     "green", "pink", 
                                     "purple", "black")
               )


plot(mds2$points[, 1], mds2$points[, 2], 
     col = c("skyblue", "orange", 
             "green", "pink", 
             "purple", "black")[as.numeric(train_labels)], 
     main = "Type Clustering"
     )

legend("topleft", legend = c("basal", "cell_line", 
                             "HER", "luminal_A", 
                             "luminal_B", "normal"), 
       pch = 16, col = c("skyblue", "orange", 
                         "green", "pink", 
                         "purple", "black"), 
       title = "Legend"
       )

#- 2-D MDS plot (Dim1 vs Dim3) -#
plot(mds2$points[, 1], mds2$points[, 3], 
     col = c("skyblue", "orange", 
             "green", "pink", 
             "purple", "black")[as.numeric(train_labels)], 
     main = "Type Clustering"
     )

legend("topleft", legend = c("basal", "cell_line", 
                             "HER", "luminal_A", 
                             "luminal_B", "normal"), 
       pch = 16, col = c("skyblue", "orange", 
                         "green", "pink", 
                         "purple", "black"), 
       title = "Legend"
       )

#- 2-D MDS plot (other dimensions) -#
fig21 <- plot_ly(x = mds2[["points"]][,1], y = mds2[["points"]][,2], 
                 type="scatter", mode="markers", 
                 color = c("skyblue", "orange", 
                           "green", "pink", 
                           "purple", "black")[as.numeric(train_labels)])

fig22 <- plot_ly(x = mds2[["points"]][,2], y = mds2[["points"]][,3], 
                 type="scatter", mode="markers", 
                 color = c("skyblue", "orange", 
                           "green", "pink", 
                           "purple", "black")[as.numeric(train_labels)])

fig23 <- plot_ly(x = mds2[["points"]][,2], y = mds2[["points"]][,4], 
                 type="scatter", mode="markers", 
                 color = c("skyblue", "orange", 
                           "green", "pink", 
                           "purple", "black")[as.numeric(train_labels)])

fig24 <- plot_ly(x = mds2[["points"]][,2], y = mds2[["points"]][,5], 
                 type="scatter", mode="markers", 
                 color = c("skyblue", "orange", 
                           "green", "pink", 
                           "purple", "black")[as.numeric(train_labels)])

subplot(fig21, fig22)
`arrange_()` is deprecated as of dplyr 0.7.0.
Please use `arrange()` instead.
See vignette('programming') for more help
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.

subplot(fig23, fig24)
#- 3-D MDS plot -#
x3 <- list(
  title = "Dim1"
)
y3 <- list(
  title = "Dim2"
)

z3 <- list(
  title = "Dim3"
)
fig25 <- plot_ly(x = mds2[["points"]][,1], 
                 y = mds2[["points"]][,2], 
                 z = mds2[["points"]][,3], 
                 type="scatter3d", mode="markers", 
                 color = c("skyblue","orange",
                           "green", "pink",
                           "purple", "black")[as.numeric(train_labels)]
                 )

fig25 <- fig25 %>% layout(scene = list(xaxis = x3, yaxis = y3, zaxis = z3), title = "3D RF clustering with type labelled")
fig25

x3 <- list(
  title = "Dim1"
)
y3 <- list(
  title = "Dim2"
)

z3 <- list(
  title = "Dim4"
)
fig26 <- plot_ly(x = mds2[["points"]][,1], 
                 y = mds2[["points"]][,2], 
                 z = mds2[["points"]][,4], 
                 type="scatter3d", mode="markers", 
                 color = c("skyblue","orange",
                           "green", "pink",
                           "purple", "black")[as.numeric(train_labels)]
                 )

fig26 <- fig26 %>% layout(scene = list(xaxis = x3, yaxis = y3, zaxis = z3), title = "3D RF clustering with clusters labelled")
fig26

NA
x3 <- list(
  title = "Dim1"
)
y3 <- list(
  title = "Dim3"
)

z3 <- list(
  title = "Dim4"
)
fig27 <- plot_ly(x = mds2[["points"]][,1], 
                 y = mds2[["points"]][,3], 
                 z = mds2[["points"]][,4], 
                 type="scatter3d", mode="markers", 
                 color = c("skyblue","orange",
                           "green", "pink",
                           "purple", "black")[as.numeric(train_labels)]
                 )

fig27 <- fig27 %>% layout(scene = list(xaxis = x3, yaxis = y3, zaxis = z3), title = "3D RF clustering with type labelled")
fig27
x3 <- list(
  title = "Dim2"
)
y3 <- list(
  title = "Dim3"
)

z3 <- list(
  title = "Dim4"
)
fig28 <- plot_ly(x = mds2[["points"]][,2], 
                 y = mds2[["points"]][,3], 
                 z = mds2[["points"]][,4], 
                 type="scatter3d", mode="markers", 
                 color = c("skyblue","orange",
                           "green", "pink",
                           "purple", "black")[as.numeric(train_labels)]
                 )

fig28 <- fig28 %>% layout(scene = list(xaxis = x3, yaxis = y3, zaxis = z3), title = "3D RF clustering with clusters labelled")
fig28
tree <- getTree(rf.fit2, 6, labelVar=TRUE) %>%
    tibble::rownames_to_column() %>%
    # make leaf split points to NA, so the 0s won't get plotted
    mutate(`split point` = ifelse(is.na(prediction), `split point`, NA))
  
  # prepare data frame for graph
  graph_frame <- data.frame(from = rep(tree$rowname, 2),
                            to = c(tree$`left daughter`, tree$`right daughter`))
  
  # convert to graph and delete the last node that we don't want to plot
  graph <- graph_from_data_frame(graph_frame) %>%
    delete_vertices("0")
  
  # set node labels
  V(graph)$node_label <- gsub("_", " ", as.character(tree$`split var`))
  V(graph)$leaf_label <- as.character(tree$prediction)
  V(graph)$split <- as.character(round(tree$`split point`, digits = 2))
  
  # plot
  plot <- ggraph(graph, 'dendrogram') + 
    theme_bw() +
    geom_edge_link() +
    geom_node_point() +
    geom_node_label(aes(label = split), vjust = 2.5, na.rm = TRUE, fill = "white") +
    geom_node_label(aes(label = leaf_label, fill = leaf_label), na.rm = TRUE, 
                    repel = TRUE, colour = "white", fontface = "bold", show.legend = FALSE) +
    theme(panel.grid.minor = element_blank(),
          panel.grid.major = element_blank(),
          panel.background = element_blank(),
          plot.background = element_rect(fill = "white"),
          panel.border = element_blank(),
          axis.line = element_blank(),
          axis.text.x = element_blank(),
          axis.text.y = element_blank(),
          axis.ticks = element_blank(),
          axis.title.x = element_blank(),
          axis.title.y = element_blank(),
          plot.title = element_text(size = 18))
Duplicated aesthetics after name standardisation: na.rmDuplicated aesthetics after name standardisation: na.rm
  
  print(plot)

NA
NA
LS0tCnRpdGxlOiAiU2NpZW50aWZpYyBQcm9ncmFtbWluZyBCcmVhc3QgQ2FuY2VyIFJlcG9ydCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpJbnRlcmVzdGluZwpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiAKClRyeSBleGVjdXRpbmcgdGhpcyBjaHVuayBieSBjbGlja2luZyB0aGUgKlJ1biogYnV0dG9uIHdpdGhpbiB0aGUgY2h1bmsgb3IgYnkgcGxhY2luZyB5b3VyIGN1cnNvciBpbnNpZGUgaXQgYW5kIHByZXNzaW5nICpDbWQrU2hpZnQrRW50ZXIqLiAKCiMgTG9hZCBQYWNrYWdlcyBhbmQgRGF0YQpgYGB7cn0KIy0gTG9hZCBQYWNrYWdlcyAtIwojLSBQYWNrYWdlIG5hbWVzIC0jCnBhY2thZ2VzIDwtIGMoImRwbHlyIiwgInBjYU1ldGhvZHMiLCAiZmFjdG9leHRyYSIsICJyZ2wiLCAicGNhM2QiLCAicmFuZG9tRm9yZXN0IiwgImNhcmV0IiwgImNsdXN0ZXIiLCAiUkNvbG9yQnJld2VyIiwgInBsb3QzRCIsICJwbG90bHkiLCAiZG9QYXJhbGxlbCIsICJpbmZsdWVudGlhbCIsICJpZ3JhcGgiLCAiZ2dyYXBoIikKCiMtIEluc3RhbGwgcGFja2FnZXMgbm90IHlldCBpbnN0YWxsZWQgLSMKaW5zdGFsbGVkX3BhY2thZ2VzIDwtIHBhY2thZ2VzICVpbiUgcm93bmFtZXMoaW5zdGFsbGVkLnBhY2thZ2VzKCkpCmlmIChhbnkoaW5zdGFsbGVkX3BhY2thZ2VzID09IEZBTFNFKSkgewogIGluc3RhbGwucGFja2FnZXMocGFja2FnZXNbIWluc3RhbGxlZF9wYWNrYWdlc10pCn0KCiMtIFBhY2thZ2VzIGxvYWRpbmcgLSMKaW52aXNpYmxlKGxhcHBseShwYWNrYWdlcywgbGlicmFyeSwgY2hhcmFjdGVyLm9ubHkgPSBUUlVFKSkKYGBgCgojIyMgTG9hZCBEYXRhCmBgYHtyfQojLSBMb2FkIERhdGEgLSMKc2V0d2QoJy9Vc2Vycy9yYXZpbnNjaG1pZGwvRGVza3RvcC9TeXN0ZW1zX0Jpby9TY2llbnRpZmljX1Byb2dyYW1taW5nL0RhdGEnKQpkZiA8LSByZWFkLmNzdignQnJlYXN0X0dTRTQ1ODI3LmNzdicsIGNoZWNrLm5hbWVzID0gRkFMU0UpCmBgYAoKIyBEYXRhIEV4cGxvcmF0aW9uCiMjIHdoYXQgZG9lcyB0aGUgZGF0YSBsb29rIGxpa2U/CiMjIyBJbnZlc3RpZ2F0aW5nIERhdGEgVHlwZXMKYGBge3J9CnByaW50KHBhc3RlMCgiTnVtYmVyIG9mIFVuaXF1ZSBUeXBlczogIiwgbGVuZ3RoKHVuaXF1ZShkZiR0eXBlKSkpKQp0YWJsZShkZiR0eXBlKQpgYGAKYGBge3J9CmJhcnBsb3Qoc29ydCh0YWJsZShkZiR0eXBlKSksIHhsYWIgID0gIlRpc3N1ZSBUeXBlIiwgCiAgICAgICAgeWxhYiA9ICJDb3VudCIsCiAgICAgICAgbWFpbiA9ICJOdW1iZXIgb2YgU2FtcGxlcyBwZXIgVHlwZSIgCiAgICAgICAgKQpgYGAKKiBCYXNlZCBvbiB0aGUgYWJvdmUgZGlzdHJpYnV0aW9uLCBpdCBzZWVtcyB0aGF0IG5vcm1hbCwgY2VsbF9saW5lIGFuZCBiYXNhbCB0eXBlcyBjb250YWluIHRvbyBmZXcvbWFueSBzYW1wbGVzLgoKCmBgYHtyfQpkZl9mcmFtZSA8LSBkYXRhLmZyYW1lKG1hdHJpeCh1bmxpc3QoZGYpLCBucm93PWxlbmd0aChkZiksIGJ5cm93PVQpKQpkZl9mcmFtZSA8LSB0KGRmX2ZyYW1lKQpkZl9mcmFtZTIgPC0gZGZfZnJhbWVbLC0oMToyKV0KI2RmX2ZyYW1lMyA8LSBhcy5udW1lcmljKHVubGlzdChkZl9mcmFtZTIpKQoKYGBgCgojIyMgQ2hlY2tpbmcgdGhlIG51bWJlciBvZiBOQSdzLCBuZWdhdGl2ZXMgYW5kIHVuaXF1ZSBzYW1wbGVzCmBgYHtyfQoKcHJpbnQocGFzdGUwKCJOdW1iZXIgb2YgTmEgdmFsdWVzOiAiLCBzdW0oaXMubmEoZGYpKSkpCnByaW50KHBhc3RlMCgiTnVtYmVyIG9mIE5lZ2F0aXZlIHZhbHVlczogIiwgc3VtKGRmX2ZyYW1lMiA8IDApKSkKcHJpbnQocGFzdGUwKCJOdW1iZXIgb2YgSUQnczogIiwgbGVuZ3RoKGRmJHNhbXBsZXMpKSkKcHJpbnQocGFzdGUwKCJOdW1iZXIgb2YgVW5pcXVlIElEJ3M6ICIsIGxlbmd0aCh1bmlxdWUoZGYkc2FtcGxlcykpKSkKYGBgCgojIyMgRmlndXJlIG91dCBhbmQgdmlzdWFsaXNlIHNwcmVhZCBvZiBkYXRhLiAKYGBge3J9Cmhpc3QoZGZfZnJhbWUyLCBicmVha3MgPSAxZTYsIHhsaW0gPSBjKDAsMjApLCBtYWluID0gIkVudGlyZSBEYXRhc2V0IikKYGBgCgojIyMgRmlndXJlIG91dCBhbmQgdmlzdWFsaXNlIHNwcmVhZCBvZiBkYXRhIHdpdGhpbiBjbGFzc2VzLgpgYGB7cn0KZGZfYmFzYWwgPC0gZGZbZGYkdHlwZSA9PSAnYmFzYWwnLF0KZGZfYmFzYWwyIDwtIGRhdGEuZnJhbWUobWF0cml4KHVubGlzdChkZl9iYXNhbCksIG5yb3c9bGVuZ3RoKGRmX2Jhc2FsKSwgYnlyb3c9VCkpCmRmX2Jhc2FsMiA8LSB0KGRmX2Jhc2FsMikKZGZfYmFzYWwyIDwtIGRmX2Jhc2FsMlssLSgxOjIpXQojZGZfYmFzYWwzIDwtIGFzLm51bWVyaWModW5saXN0KGRmX2Jhc2FsMikpCgpkZl9ub3JtYWwgPC0gZGZbZGYkdHlwZSA9PSAnbm9ybWFsJyxdCmRmX25vcm1hbDIgPC0gZGF0YS5mcmFtZShtYXRyaXgodW5saXN0KGRmX25vcm1hbCksIG5yb3c9bGVuZ3RoKGRmX25vcm1hbCksIGJ5cm93PVQpKQpkZl9ub3JtYWwyIDwtIHQoZGZfbm9ybWFsMikKZGZfbm9ybWFsMiA8LSBkZl9ub3JtYWwyWywtKDE6MildCiNkZl9ub3JtYWwzIDwtIGFzLm51bWVyaWModW5saXN0KGRmX25vcm1hbDIpKQoKZGZfY2VsbF9saW5lIDwtIGRmW2RmJHR5cGUgPT0gJ2NlbGxfbGluZScsXQpkZl9jZWxsX2xpbmUyIDwtIGRhdGEuZnJhbWUobWF0cml4KHVubGlzdChkZl9jZWxsX2xpbmUpLCBucm93PWxlbmd0aChkZl9jZWxsX2xpbmUpLCBieXJvdz1UKSkKZGZfY2VsbF9saW5lMiA8LSB0KGRmX2NlbGxfbGluZTIpCmRmX2NlbGxfbGluZTIgPC0gZGZfY2VsbF9saW5lMlssLSgxOjIpXQojZGZfY2VsbF9saW5lMyA8LSBhcy5udW1lcmljKHVubGlzdChkZl9jZWxsX2xpbmUyKSkKCmRmX0hFUiA8LSBkZltkZiR0eXBlID09ICdIRVInLF0KZGZfSEVSMiA8LSBkYXRhLmZyYW1lKG1hdHJpeCh1bmxpc3QoZGZfSEVSKSwgbnJvdz1sZW5ndGgoZGZfSEVSKSwgYnlyb3c9VCkpCmRmX0hFUjIgPC0gdChkZl9IRVIyKQpkZl9IRVIyIDwtIGRmX0hFUjJbLC0oMToyKV0KI2RmX0hFUjMgPC0gYXMubnVtZXJpYyh1bmxpc3QoZGZfSEVSMikpCgpkZl9sdW1pbmFsX0EgPC0gZGZbZGYkdHlwZSA9PSAnbHVtaW5hbF9BJyxdCmRmX2x1bWluYWxfQTIgPC0gZGF0YS5mcmFtZShtYXRyaXgodW5saXN0KGRmX2x1bWluYWxfQSksIG5yb3c9bGVuZ3RoKGRmX2x1bWluYWxfQSksIGJ5cm93PVQpKQpkZl9sdW1pbmFsX0EyIDwtIHQoZGZfbHVtaW5hbF9BMikKZGZfbHVtaW5hbF9BMiA8LSBkZl9sdW1pbmFsX0EyWywtKDE6MildCiNkZl9sdW1pbmFsX0EzIDwtIGFzLm51bWVyaWModW5saXN0KGRmX2x1bWluYWxfQSkpCgpkZl9sdW1pbmFsX0IgPC0gZGZbZGYkdHlwZSA9PSAnbHVtaW5hbF9CJyxdCmRmX2x1bWluYWxfQjIgPC0gZGF0YS5mcmFtZShtYXRyaXgodW5saXN0KGRmX2x1bWluYWxfQiksIG5yb3c9bGVuZ3RoKGRmX2x1bWluYWxfQiksIGJ5cm93PVQpKQpkZl9sdW1pbmFsX0IyIDwtIHQoZGZfbHVtaW5hbF9CMikKZGZfbHVtaW5hbF9CMiA8LSBkZl9sdW1pbmFsX0IyWywtKDE6MildCiNkZl9sdW1pbmFsX0IzIDwtIGFzLm51bWVyaWModW5saXN0KGRmX2x1bWluYWxfQjIpKQoKcGFyKG1mcm93PWMoMiwzKSkKaGlzdChkZl9iYXNhbDIsIGJyZWFrcyA9IDFlNiwgeGxpbSA9IGMoMCwyMCksIG1haW4gPSAiQmFzYWwiKQpoaXN0KGRmX25vcm1hbDIsIGJyZWFrcyA9IDFlNiwgeGxpbSA9IGMoMCwyMCksIG1haW4gPSAiTm9ybWFsIikKaGlzdChkZl9jZWxsX2xpbmUyLCBicmVha3MgPSAxZTYsIHhsaW0gPSBjKDAsMjApLCBtYWluID0gIkNlbGwgTGluZSIpCmhpc3QoZGZfSEVSMiwgYnJlYWtzID0gMWU2LCB4bGltID0gYygwLDIwKSwgbWFpbiA9ICJIRVIiKQpoaXN0KGRmX2x1bWluYWxfQTIsIGJyZWFrcyA9IDFlNiwgeGxpbSA9IGMoMCwyMCksIG1haW4gPSAiTHVtaW5hbCBBIikKaGlzdChkZl9sdW1pbmFsX0IyLCBicmVha3MgPSAxZTYsIHhsaW0gPSBjKDAsMjApLCBtYWluID0gIkx1bWluYWwgQiIpCgpgYGAKKiBXZSBjYW4gc2VlIHRoYXQgdGhlIGRhdGEgc2VlbXMgdG8gYmUgcXVpdGUgc2tld2VkLCBzbyB3ZSB3aWxsIGhhdmUgdG8gc2NhbGUvbm9ybWFsaXNlIHRoZSBkYXRhIGJlZm9yZSBwcm9jZWVkaW5nLiAKCiogTWF5YmUgd2Ugc2hvdWxkIHNlZSB3aGF0IGl0IGxvb2tzIGxpa2Ugb25seSB3aXRoIGx1bWluYWwtQSwgbHVtaW5hbC1CIGFuZCBIRVIuIApgYGB7cn0KZGZfbGFsYmhlciA8LSBzdWJzZXQoZGYsIHR5cGUgPT0gIkhFUiIgfCB0eXBlID09ICJsdW1pbmFsX0EiIHwgdHlwZSA9PSAibHVtaW5hbF9CIikKCmRmX2xhbGJoZXIyIDwtIGRhdGEuZnJhbWUobWF0cml4KHVubGlzdChkZl9sYWxiaGVyKSwgbnJvdz1sZW5ndGgoZGZfbGFsYmhlciksIGJ5cm93PVQpKQpkZl9sYWxiaGVyMiA8LSB0KGRmX2xhbGJoZXIyKQpkZl9sYWxiaGVyMiA8LSBkZl9sYWxiaGVyMlssLSgxOjIpXQojZGZfbGFsYmhlcjMgPC0gYXMubnVtZXJpYyh1bmxpc3QoZGZfbGFsYmhlcjIpKQoKaGlzdChkZl9sYWxiaGVyMiwgYnJlYWtzID0gMWU2LCB4bGltID0gYygwLDIwKSwgbWFpbiA9ICJMdW1pbmFsIEEsIEx1bWluYWwgQiBhbmQgSEVSIERhdGFzZXQiKQojcXFub3JtKGRmX2xhbGJoZXIyLCBwY2ggPSAxLCBmcmFtZSA9IEZBTFNFKQpgYGAKKiBIbSwgaW50ZXJlc3Rpbmc7IGxvb2tzIGp1c3QgdGhlIHNhbWUKCiMgUHJlcG9jZXNzaW5nCiMjIyBMb2cgdHJhbnNmb3JtaW5nIHRoZSBkYXRhLiAgCmBgYHtyfQpkZl9sb2cgPC0gbG9nKGRmX2ZyYW1lMiwgMikKYGBgCgojIyMgRmlyc3QgcGxvdCB0aGUgaGlzdG9ncmFtIG9mIExvZy1TY2FsZWQgRGF0YQpgYGB7cn0KaGlzdChkZl9sb2csIGJyZWFrcyA9IDFlNiwgeGxpbSA9IGMoMCw1KSwgbWFpbiA9ICJMb2cgVHJhbnNmb3JtZWQgRGF0YSIpCgpgYGAKYGBge3J9CmRmX2xhbGJoZXIyX2xvZyA8LSBsb2coZGZfbGFsYmhlcjIsIDIpCmBgYAoKIyMjIEZpcnN0IHBsb3QgdGhlIGhpc3RvZ3JhbSBvZiBMb2ctU2NhbGVkIERhdGEKYGBge3J9Cmhpc3QoZGZfbGFsYmhlcjJfbG9nLCBicmVha3MgPSAxZTYsIHhsaW0gPSBjKDAsNSksIG1haW4gPSAiTG9nIFRyYW5zZm9ybWVkIERhdGEgTEFMQkhFUiIpCgpgYGAKCiMgUENBCiogUENBICB3YXMgcGVyZm9ybWVkIHdpdGggdHdvIGZ1bmN0aW9uczoKICAqKiBwcmNvbXAKICAqKiBwY2EKICAKIyMgMi1EaW1lbnNpb25hbCBQQ0EgcGxvdHMKYGBge3J9CmRmLlBDQSA8LSBwcmNvbXAoZGZfbG9nLCBzY2FsZSA9IEZBTFNFLCBjZW50ZXIgPSBUUlVFKQojZGYuUENBMiA8LSBwY2EoZGZfbG9nLCBzY2FsZSA9ICJub25lIiwgY2VudGVyID0gVFJVRSkKYGBgCmBgYHtyfQpzdW1tYXJ5KGRmLlBDQSkKI3N1bW1hcnkoZGYuUENBMikKYGBgCgpgYGB7cn0KdHlwZSA8LSBmYWN0b3IoZGZbLDJdKQojcGNhM2QgPC0gcGNhM2QoZGYuUENBLCBncm91cCA9IHR5cGUpc3VtCmBgYAojIyMgSGVyZSBhcmUgdmFyaW91cyBQcmluY2lwYWwgQ29tcG9uZW50cyBwbG90dGVkIGFnYWluc3QgZWFjaG90aGVyLiAKYGBge3J9CmZpZzEgPC0gcGxvdF9seSh4ID0gZGYuUENBW1sieCJdXVssMV0sIHkgPSBkZi5QQ0FbWyJ4Il1dWywyXSwgCiAgICAgICAgICAgICAgICB0eXBlID0gInNjYXR0ZXIiLCBtb21kZSA9ICJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKZmlnMiA8LSBwbG90X2x5KHggPSBkZi5QQ0FbWyJ4Il1dWywxXSwgeSA9IGRmLlBDQVtbIngiXV1bLDNdLCAKICAgICAgICAgICAgICAgIHR5cGUgPSAic2NhdHRlciIsIG1vbWRlID0gIm1hcmtlcnMiLCBjb2xvciA9IHR5cGUpCgpmaWczIDwtIHBsb3RfbHkoeCA9IGRmLlBDQVtbIngiXV1bLDFdLCB5ID0gZGYuUENBW1sieCJdXVssNF0sIAogICAgICAgICAgICAgICAgdHlwZSA9ICJzY2F0dGVyIiwgbW9tZGUgPSAibWFya2VycyIsIGNvbG9yID0gdHlwZSkKCmZpZzQgPC0gcGxvdF9seSh4ID0gZGYuUENBW1sieCJdXVssMV0sIHkgPSBkZi5QQ0FbWyJ4Il1dWyw1XSwgCiAgICAgICAgICAgICAgICB0eXBlID0gInNjYXR0ZXIiLCBtb21kZSA9ICJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKZmlnNSA8LSBwbG90X2x5KHggPSBkZi5QQ0FbWyJ4Il1dWywyXSwgeSA9IGRmLlBDQVtbIngiXV1bLDNdLCAKICAgICAgICAgICAgICAgIHR5cGUgPSAic2NhdHRlciIsIG1vbWRlID0gIm1hcmtlcnMiLCBjb2xvciA9IHR5cGUpCgpmaWc2IDwtIHBsb3RfbHkoeCA9IGRmLlBDQVtbIngiXV1bLDJdLCB5ID0gZGYuUENBW1sieCJdXVssNF0sIAogICAgICAgICAgICAgICAgdHlwZSA9ICJzY2F0dGVyIiwgbW9tZGUgPSAibWFya2VycyIsIGNvbG9yID0gdHlwZSkKCmZpZzcgPC0gcGxvdF9seSh4ID0gZGYuUENBW1sieCJdXVssMl0sIHkgPSBkZi5QQ0FbWyJ4Il1dWyw1XSwgCiAgICAgICAgICAgICAgICB0eXBlID0gInNjYXR0ZXIiLCBtb21kZSA9ICJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKZmlnOCA8LSBwbG90X2x5KHggPSBkZi5QQ0FbWyJ4Il1dWywzXSwgeSA9IGRmLlBDQVtbIngiXV1bLDRdLCAKICAgICAgICAgICAgICAgIHR5cGUgPSAic2NhdHRlciIsIG1vbWRlID0gIm1hcmtlcnMiLCBjb2xvciA9IHR5cGUpCgpmaWc5IDwtIHBsb3RfbHkoeCA9IGRmLlBDQVtbIngiXV1bLDNdLCB5ID0gZGYuUENBW1sieCJdXVssNV0sIAogICAgICAgICAgICAgICAgdHlwZSA9ICJzY2F0dGVyIiwgbW9tZGUgPSAibWFya2VycyIsIGNvbG9yID0gdHlwZSkKCmZpZzEwIDwtIHBsb3RfbHkoeCA9IGRmLlBDQVtbIngiXV1bLDRdLCB5ID0gZGYuUENBW1sieCJdXVssNV0sIAogICAgICAgICAgICAgICAgIHR5cGUgPSAic2NhdHRlciIsIG1vbWRlID0gIm1hcmtlcnMiLCBjb2xvciA9IHR5cGUpCgpzdWJwbG90KGZpZzEsIGZpZzIpCnN1YnBsb3QoZmlnMywgZmlnNCkKc3VicGxvdChmaWc1LCBmaWc2KQpzdWJwbG90KGZpZzcsIGZpZzgpCnN1YnBsb3QoZmlnOSwgZmlnMTApCmBgYAojIyAzLURpbWVuc2lvbmFsIFBDQSBwbG90cwpgYGB7cn0KZiA8LSBsaXN0KAogIGZhbWlseSA9ICJDb3VyaWVyIE5ldywgbW9ub3NwYWNlIiwKICBzaXplID0gMTgsCiAgY29sb3IgPSAiIzdmN2Y3ZiIKKQp4IDwtIGxpc3QoCiAgdGl0bGUgPSAiUEMxIiwKICB0aXRsZWZvbnQgPSBmCikKeSA8LSBsaXN0KAogIHRpdGxlID0gIlBDMiIsCiAgdGl0bGVmb250ID0gZgopCgp6IDwtIGxpc3QoCiAgdGl0bGUgPSAiUEMzIiwKICB0aXRsZWZvbnQgPSBmCikKZmlnMTEgPC0gcGxvdF9seSh4ID0gZGYuUENBW1sieCJdXVssMV0sIAogICAgICAgICAgICAgICAgIHkgPSBkZi5QQ0FbWyJ4Il1dWywyXSwgCiAgICAgICAgICAgICAgICAgeiA9IGRmLlBDQVtbIngiXV1bLDNdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyM2QiLCBtb2RlPSJtYXJrZXJzIiwgY29sb3I9dHlwZSkKCmZpZzExIDwtIGZpZzExICU+JSBsYXlvdXQoc2NlbmUgPSBsaXN0KHhheGlzID0geCwgeWF4aXMgPSB5LCB6YXhpcyA9IHopLCAKICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9ICIzRCBQQ0EgY2x1c3RlcmluZyB3aXRoIHR5cGUgbGFiZWxsZWQiKQpmaWcxMQoKYGBgCmBgYHtyfQp4MiA8LSBsaXN0KAogIHRpdGxlID0gIlBDMiIsCiAgdGl0bGVmb250ID0gZgopCnkyIDwtIGxpc3QoCiAgdGl0bGUgPSAiUEMzIiwKICB0aXRsZWZvbnQgPSBmCikKCnoyIDwtIGxpc3QoCiAgdGl0bGUgPSAiUEM0IiwKICB0aXRsZWZvbnQgPSBmCikKZmlnMTIgPC0gcGxvdF9seSh4ID0gZGYuUENBW1sieCJdXVssMl0sIAogICAgICAgICAgICAgICAgIHkgPSBkZi5QQ0FbWyJ4Il1dWywzXSwgCiAgICAgICAgICAgICAgICAgeiA9IGRmLlBDQVtbIngiXV1bLDRdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyM2QiLCBtb2RlPSJtYXJrZXJzIiwgY29sb3I9dHlwZSkKCmZpZzEyIDwtIGZpZzEyICU+JSBsYXlvdXQoc2NlbmUgPSBsaXN0KHhheGlzID0geDIsIHlheGlzID0geTIsIHpheGlzID0gejIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9ICIzRCBQQ0EgY2x1c3RlcmluZyB3aXRoIHR5cGUgbGFiZWxsZWQiKQpmaWcxMgpgYGAKCiMgUmFuZG9tIEZvcmVzdAojIyBVbnN1cGVydmlzZWQgUmFuZG9tIEZvcmVzdAoqIHJhbmRvbUZvcmVzdChmb3JtdWxhbHIsIGRhdGEpIE9SIHJhbmRvbUZvcmVzdCh4LCB5LCB4dGVzdCwgeXRlc3QsIG50cmVlLCBtdHJ5KQoqIElmIHVzaW5nIHRoZSBzZWNvbmQgZm9ybXVsYSwgd2UgY2FuIG9taXQgeSwgZm9yY2luZyB0aGUgZm9ybXVsYSB0byBydW4gYW4gdW5zdXBlcnZpc2VkIHJhbmRvbSBmb3Jlc3QuIApgYGB7cn0KIy0gQ2xlYXIgZ2xvYmFsIGVudmlyb25tZW50IGFuZCByZWxvYWQgcGFja2FnZXMtIwpybShsaXN0PXNldGRpZmYobHMoKSwgImRmIikpCiMtIExvYWQgZmlsZXMgYW5kIGxpYnJhcmllcyAtIwoKI1BhY2thZ2UgbmFtZXMKcGFja2FnZXMgPC0gYygiZHBseXIiLCAicGNhTWV0aG9kcyIsICJmYWN0b2V4dHJhIiwgInJnbCIsICJwY2EzZCIsICJyYW5kb21Gb3Jlc3QiLCAiY2FyZXQiLCAiY2x1c3RlciIsICJSQ29sb3JCcmV3ZXIiLCAicGxvdDNEIiwgInBsb3RseSIsICJkb1BhcmFsbGVsIiwgImluZmx1ZW50aWFsIiwgImlncmFwaCIsICJnZ3JhcGgiLCAicmFuZG9tRm9yZXN0RXhwbGFpbmVyIikKCiNJbnN0YWxsIHBhY2thZ2VzIG5vdCB5ZXQgaW5zdGFsbGVkCmluc3RhbGxlZF9wYWNrYWdlcyA8LSBwYWNrYWdlcyAlaW4lIHJvd25hbWVzKGluc3RhbGxlZC5wYWNrYWdlcygpKQppZiAoYW55KGluc3RhbGxlZF9wYWNrYWdlcyA9PSBGQUxTRSkpIHsKICBpbnN0YWxsLnBhY2thZ2VzKHBhY2thZ2VzWyFpbnN0YWxsZWRfcGFja2FnZXNdKQp9CgojUGFja2FnZXMgbG9hZGluZwppbnZpc2libGUobGFwcGx5KHBhY2thZ2VzLCBsaWJyYXJ5LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKQoKc2V0d2QoJy9Vc2Vycy9yYXZpbnNjaG1pZGwvRGVza3RvcC9TeXN0ZW1zX0Jpby9TY2llbnRpZmljX1Byb2dyYW1taW5nL0RhdGEnKQpgYGAKYGBge3J9CiNMb2cyICB0cmFuc2Zvcm0gdGhlIGRhdGEKZGZfZnJhbWUgPC0gZGF0YS5mcmFtZShtYXRyaXgodW5saXN0KGRmKSwgbnJvdz1sZW5ndGgoZGYpLCBieXJvdyA9IFQpKQpkZl9mcmFtZSA8LSB0KGRmX2ZyYW1lKQpkZl9mcmFtZTIgPC0gZGZfZnJhbWVbLC0oMToyKV0KI2RmX2ZyYW1lMyA8LSBhcy5udW1lcmljKHVubGlzdChkZl9mcmFtZTIpKQpkZl9sb2cgPC0gbG9nKGRmX2ZyYW1lMiwgMikKYGBgCmBgYHtyfQojLSBUdW5lIFJhbmRvbSBGb3Jlc3QgUGFyYW1ldGVycyAtIwpzZXQuc2VlZCgxMjMpCnQgPC0gdHVuZVJGKGRmX2xvZ1ssLTIyXSwgZGZfbG9nWywyMl0sIAogICAgICAgICAgICAgICAgICAgIHN0ZXBGYWN0b3IgPSAwLjUsCiAgICAgICAgICAgICAgICAgICAgcGxvdCA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgbXRyeVN0YXJ0ID0gOCwKICAgICAgICAgICAgICAgICAgICBudHJlZVRyeSA9IDgwMSwgCiAgICAgICAgICAgICAgICAgICAgdHJhY2UgPSBUUlVFLCAKICAgICAgICAgICAgICAgICAgICBpbXByb3ZlID0gMC4wNSkKYGBgCmBgYHtyfQojLSBSdW4gUmFuZG9tIEZvcmVzdCAtIwpjbCA8LSBtYWtlUFNPQ0tjbHVzdGVyKDUpIAogIApyZWdpc3RlckRvUGFyYWxsZWwoY2wpIApzZXQuc2VlZCgxMjMpCnJmLmZpdCA8LSByYW5kb21Gb3Jlc3QoeCA9IGRmX2xvZywgeSA9IE5VTEwsIAogICAgICAgICAgICAgICAgICAgICAgIG10cnkgPSAxNiwgbnRyZWUgPSA4MDEsIAogICAgICAgICAgICAgICAgICAgICAgIHByb3hpbWl0eSA9IFRSVUUsIG9vYi5wcm94ID0gVFJVRSkKc3RvcENsdXN0ZXIoY2wpCgpgYGAKCmBgYHtyfQojLSBHZXR0aW5nIHByZWRpY3Rpb24gLSMKdHlwZSA8LSBmYWN0b3IoZGZbLDJdKQpwcm94IDwtIHJmLmZpdCRwcm94aW1pdHkKcGFtLnJmIDwtIHBhbShwcm94LCA2KQpwcmVkIDwtIGNiaW5kKHBhbS5yZiRjbHVzdGVyaW5nLCB0eXBlKQojdGFibGUocHJlZFssMl0sIHByZWRbLDFdKQpjb25mdXNpb25NYXRyaXgodGFibGUocHJlZFssMl0sIHByZWRbLDFdKSkKYGBgCmBgYHtyfQoKaGNsdXN0LnJmIDwtIGhjbHVzdChhcy5kaXN0KDEtcmYuZml0JHByb3hpbWl0eSkpCnJmLmNsdXN0ZXIgPSBjdXRyZWUoaGNsdXN0LnJmLCBrPTYpCmRmX2xvZyRyZi5jbHVzdGVycyA8LSByZi5jbHVzdGVyCnRhYmxlKHJmLmNsdXN0ZXIsIHR5cGUpCmNvbmZ1c2lvbk1hdHJpeCh0YWJsZShyZi5jbHVzdGVyLCB0eXBlKSkKCmBgYAoKYGBge3J9CiMtIDItRCBNRFMgcGxvdCAoRGltMSB2cyBEaW0yKSAtIwptZHMxIDwtIE1EU3Bsb3QocmYuZml0LCB0eXBlLCBrID0gNiwgCiAgICAgICAgICAgICAgIHBjaCA9IDE2LCBwYWxldHRlID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncmVlbiIsICJwaW5rIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHVycGxlIiwgImJsYWNrIikKICAgICAgICAgICAgICAgKQoKY2x1c3RlcnNfcGFtIDwtIHBhbSgxIC0gcmYuZml0JHByb3hpbWl0eSwgayA9IDYsIGRpc3MgPSBUUlVFKQoKcGxvdChtZHMxJHBvaW50c1ssIDFdLCBtZHMxJHBvaW50c1ssIDJdLCAKICAgICBjb2wgPSBjKCJza3libHVlIiwgIm9yYW5nZSIsIAogICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICJwdXJwbGUiLCAiYmxhY2siKVthcy5udW1lcmljKHR5cGUpXSwgCiAgICAgbWFpbiA9ICJUeXBlIENsdXN0ZXJpbmciCiAgICAgKQoKbGVnZW5kKCJ0b3BsZWZ0IiwgbGVnZW5kID0gYygiYmFzYWwiLCAiY2VsbF9saW5lIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhFUiIsICJsdW1pbmFsX0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHVtaW5hbF9CIiwgIm5vcm1hbCIpLCAKICAgICAgIHBjaCA9IDE2LCBjb2wgPSBjKCJza3libHVlIiwgIm9yYW5nZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICJwdXJwbGUiLCAiYmxhY2siKSwgCiAgICAgICB0aXRsZSA9ICJMZWdlbmQiCiAgICAgICApCgpgYGAKYGBge3J9CiMtIDItRCBNRFMgcGxvdCAoRGltMSB2cyBEaW0zKSAtIwoKY2x1c3RlcnNfcGFtIDwtIHBhbSgxIC0gcmYuZml0JHByb3hpbWl0eSwgayA9IDYsIGRpc3MgPSBUUlVFKQoKcGxvdChtZHMxJHBvaW50c1ssIDFdLCBtZHMxJHBvaW50c1ssIDNdLCAKICAgICBjb2wgPSBjKCJza3libHVlIiwgIm9yYW5nZSIsIAogICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICJwdXJwbGUiLCAiYmxhY2siKVthcy5udW1lcmljKHR5cGUpXSwgCiAgICAgbWFpbiA9ICJUeXBlIENsdXN0ZXJpbmciCiAgICAgKQoKbGVnZW5kKCJ0b3BsZWZ0IiwgbGVnZW5kID0gYygiYmFzYWwiLCAiY2VsbF9saW5lIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhFUiIsICJsdW1pbmFsX0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHVtaW5hbF9CIiwgIm5vcm1hbCIpLCAKICAgICAgIHBjaCA9IDE2LCBjb2wgPSBjKCJza3libHVlIiwgIm9yYW5nZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICJwdXJwbGUiLCAiYmxhY2siKSwgCiAgICAgICB0aXRsZSA9ICJMZWdlbmQiKQpgYGAKCmBgYHtyfQojLSAyLUQgTURTIHBsb3QgKG90aGVyIGRpbWVuc2lvbnMpIC0jCmZpZzEzIDwtIHBsb3RfbHkoeCA9IG1kczFbWyJwb2ludHMiXV1bLDFdLCB5ID0gbWRzMVtbInBvaW50cyJdXVssMl0sIAogICAgICAgICAgICAgICAgIHR5cGU9InNjYXR0ZXIiLCBtb2RlPSJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKZmlnMTQgPC0gcGxvdF9seSh4ID0gbWRzMVtbInBvaW50cyJdXVssMl0sIHkgPSBtZHMxW1sicG9pbnRzIl1dWywzXSwgCiAgICAgICAgICAgICAgICAgdHlwZT0ic2NhdHRlciIsIG1vZGU9Im1hcmtlcnMiLCBjb2xvciA9IHR5cGUpCgpmaWcxNSA8LSBwbG90X2x5KHggPSBtZHMxW1sicG9pbnRzIl1dWywyXSwgeSA9IG1kczFbWyJwb2ludHMiXV1bLDRdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyIiwgbW9kZT0ibWFya2VycyIsIGNvbG9yID0gdHlwZSkKCmZpZzE2IDwtIHBsb3RfbHkoeCA9IG1kczFbWyJwb2ludHMiXV1bLDJdLCB5ID0gbWRzMVtbInBvaW50cyJdXVssNV0sIAogICAgICAgICAgICAgICAgIHR5cGU9InNjYXR0ZXIiLCBtb2RlPSJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKc3VicGxvdChmaWcxMywgZmlnMTQpCnN1YnBsb3QoZmlnMTUsIGZpZzE2KQpgYGAKCgpgYGB7cn0KIy0gMy1EIE1EUyBwbG90IC0jCngzIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltMSIKKQp5MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTIiCikKCnozIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltMyIKKQoKY2x1c3RlcnNfcGFtX2YgPC0gZmFjdG9yKGNsdXN0ZXJzX3BhbSRjbHVzdGVyaW5nKQoKZmlnMTcgPC0gcGxvdF9seSh4ID0gbWRzMVtbInBvaW50cyJdXVssMV0sIAogICAgICAgICAgICAgICAgIHkgPSBtZHMxW1sicG9pbnRzIl1dWywyXSwgCiAgICAgICAgICAgICAgICAgeiA9IG1kczFbWyJwb2ludHMiXV1bLDNdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyM2QiLCBtb2RlPSJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKZmlnMTcgPC0gZmlnMTcgJT4lIGxheW91dChzY2VuZSA9IGxpc3QoeGF4aXMgPSB4MywgeWF4aXMgPSB5MywgemF4aXMgPSB6MyksIHRpdGxlID0gIjNEIFJGIGNsdXN0ZXJpbmcgd2l0aCB0eXBlIGxhYmVsbGVkIikKZmlnMTcKCngzIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltMSIKKQp5MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTIiCikKCnozIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltNCIKKQpmaWcxOCA8LSBwbG90X2x5KHggPSBtZHMxW1sicG9pbnRzIl1dWywxXSwgCiAgICAgICAgICAgICAgICAgeSA9IG1kczFbWyJwb2ludHMiXV1bLDJdLCAKICAgICAgICAgICAgICAgICB6ID0gbWRzMVtbInBvaW50cyJdXVssNF0sIAogICAgICAgICAgICAgICAgIHR5cGU9InNjYXR0ZXIzZCIsIG1vZGU9Im1hcmtlcnMiLCBjb2xvciA9IGNsdXN0ZXJzX3BhbV9mKQoKZmlnMTggPC0gZmlnMTggJT4lIGxheW91dChzY2VuZSA9IGxpc3QoeGF4aXMgPSB4MywgeWF4aXMgPSB5MywgemF4aXMgPSB6MyksIHRpdGxlID0gIjNEIFJGIGNsdXN0ZXJpbmcgd2l0aCBjbHVzdGVycyBsYWJlbGxlZCIpCmZpZzE4Cgp4MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTEiCikKeTMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW0zIgopCgp6MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTQiCikKZmlnMTkgPC0gcGxvdF9seSh4ID0gbWRzMVtbInBvaW50cyJdXVssMV0sIAogICAgICAgICAgICAgICAgIHkgPSBtZHMxW1sicG9pbnRzIl1dWywzXSwgCiAgICAgICAgICAgICAgICAgeiA9IG1kczFbWyJwb2ludHMiXV1bLDRdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyM2QiLCBtb2RlPSJtYXJrZXJzIiwgY29sb3IgPSB0eXBlKQoKZmlnMTkgPC0gZmlnMTkgJT4lIGxheW91dChzY2VuZSA9IGxpc3QoeGF4aXMgPSB4MywgeWF4aXMgPSB5MywgemF4aXMgPSB6MyksIHRpdGxlID0gIjNEIFJGIGNsdXN0ZXJpbmcgd2l0aCB0eXBlIGxhYmVsbGVkIikKZmlnMTkKCngzIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltMiIKKQp5MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTMiCikKCnozIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltNCIKKQpmaWcyMCA8LSBwbG90X2x5KHggPSBtZHMxW1sicG9pbnRzIl1dWywyXSwgCiAgICAgICAgICAgICAgICAgeSA9IG1kczFbWyJwb2ludHMiXV1bLDNdLCAKICAgICAgICAgICAgICAgICB6ID0gbWRzMVtbInBvaW50cyJdXVssNF0sIAogICAgICAgICAgICAgICAgIHR5cGU9InNjYXR0ZXIzZCIsIG1vZGU9Im1hcmtlcnMiLCBjb2xvciA9IGNsdXN0ZXJzX3BhbV9mKQoKZmlnMjAgPC0gZmlnMjAgJT4lIGxheW91dChzY2VuZSA9IGxpc3QoeGF4aXMgPSB4MywgeWF4aXMgPSB5MywgemF4aXMgPSB6MyksIHRpdGxlID0gIjNEIFJGIGNsdXN0ZXJpbmcgd2l0aCBjbHVzdGVycyBsYWJlbGxlZCIpCmZpZzIwCmBgYAojIyBTdXBlcnZpc2VkIFJhbmRvbSBGb3Jlc3QKKiBCYXNlZCBvbiB0aGUgcHJldmlvdXMgZGlhZ3JhbXMgYW5kIGRlcGVuZGluZyBvbiB0aGUgcmVzdWx0cyBvZiB0aGUgdXBjb21pbmcgc3VwZXJ2aXNlZCBSRiAKcGVyZm9ybWVkIG9uIGFsbCBzZXBhcmF0ZSBjbGFzc2VzLCBJIG1pZ2h0IGNvbWJpbmUgbHVtaW5hbF9BIGFuZCBsdW1pbmFsX0IgaW50byBvbmUgY2xhc3MgbmFtZWQgbHVtaW5hbAoKYGBge3J9CiMtIENsZWFyIGdsb2JhbCBlbnZpcm9ubWVudCBhbmQgcmVsb2FkIHBhY2thZ2VzIC0jCnJtKGxpc3Q9c2V0ZGlmZihscygpLCAiZGYiKSkKCiMtIExvYWQgZmlsZXMgYW5kIGxpYnJhcmllcyAtIwoKIyBQYWNrYWdlIG5hbWVzICMKcGFja2FnZXMgPC0gYygiZHBseXIiLCAicGNhTWV0aG9kcyIsICJmYWN0b2V4dHJhIiwgInJnbCIsICJwY2EzZCIsICJyYW5kb21Gb3Jlc3QiLCAiY2FyZXQiLCAiY2x1c3RlciIsICJSQ29sb3JCcmV3ZXIiLCAicGxvdDNEIiwgInBsb3RseSIsICJkb1BhcmFsbGVsIiwgImluZmx1ZW50aWFsIiwgImlncmFwaCIsICJnZ3JhcGgiLCAicmFuZG9tRm9yZXN0RXhwbGFpbmVyIikKCiMgSW5zdGFsbCBwYWNrYWdlcyBub3QgeWV0IGluc3RhbGxlZCAjCmluc3RhbGxlZF9wYWNrYWdlcyA8LSBwYWNrYWdlcyAlaW4lIHJvd25hbWVzKGluc3RhbGxlZC5wYWNrYWdlcygpKQppZiAoYW55KGluc3RhbGxlZF9wYWNrYWdlcyA9PSBGQUxTRSkpIHsKICBpbnN0YWxsLnBhY2thZ2VzKHBhY2thZ2VzWyFpbnN0YWxsZWRfcGFja2FnZXNdKQp9CgojIFBhY2thZ2VzIGxvYWRpbmcgIwppbnZpc2libGUobGFwcGx5KHBhY2thZ2VzLCBsaWJyYXJ5LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKQpgYGAKYGBge3J9CiMtIExvZyBUcmFuc2Zvcm0gRGF0YSAtIwpkZjIgPC0gZGYKZGYyWywtYygxLDIpXSA8LSBsb2coZGYyWywtYygxLDIpXSwgMikKCiMtIENyZWF0ZSBUcmFpbmluZyBhbmQgVGVzdCBEYXRhICAtIwpzZXQuc2VlZCg5OTgpCmluVHJhaW4gPC0gY3JlYXRlRGF0YVBhcnRpdGlvbihkZjIkc2FtcGxlcywgcCA9IDAuNzUsIGxpc3QgPSBGQUxTRSkKZGZfdHJhaW4gPC0gZGYyW2luVHJhaW4sXQpkZl90ZXN0IDwtIGRmMlstaW5UcmFpbixdCmBgYAoKYGBge3J9CiMtIENoZWNrIFRyYWluaW5nIGFuZCBUZXN0IERhdGEgLSMKcHJpbnQocGFzdGUwKCJEaW0gb2YgRGY6ICIsIAogICAgICAgICAgICAgZGltKGRmMlssLWMoMSwyKV0pCiAgICAgICAgICAgICApCiAgICAgICkKCnByaW50KHBhc3RlMCgiRGltIG9mIERmX3RyYWluOiAiLCAKICAgICAgICAgICAgIGRpbShkZl90cmFpblssLWMoMSwyKV0pCiAgICAgICAgICAgICApCiAgICAgICkKCnByaW50KHBhc3RlMCgiZGZfdHJhaW4vZGZfbG9nID0gIiwKICAgICAgICAgICAgIGRpbShkZl90cmFpblssLWMoMSwyKV0pWzFdIC8gZGltKGRmMlssLWMoMSwyKV0pWzFdICogMTAwLCAKICAgICAgICAgICAgICIgJSIKICAgICAgICAgICAgICkKICAgICAgKQoKcHJpbnQocGFzdGUwKCJEaW0gb2YgRGZfdGVzdDogIiwgCiAgICAgICAgICAgICBkaW0oZGZfdGVzdFssLWMoMSwyKV0pCiAgICAgICAgICAgICApCiAgICAgICkKCnByaW50KHBhc3RlMCgiZGZfdGVzdC9kZl9sb2cgPSAiLAogICAgICAgICAgICAgZGltKGRmX3Rlc3RbLC1jKDEsMildKVsxXSAvIGRpbShkZjJbLC1jKDEsMildKVsxXSAqIDEwMCwgCiAgICAgICAgICAgICAiICUiCiAgICAgICAgICAgICApCiAgICAgICkKYGBgCgpgYGB7cn0KIy0gQ3JlYXRlIGZhY3RvciBvZiBsYWJlbHMgLSMKdHJhaW5fbGFiZWxzIDwtIGZhY3RvcihkZl90cmFpblssMl0pCgp0ZXN0X2xhYmVscyA8LSBmYWN0b3IoZGZfdGVzdFssMl0pCmBgYApgYGB7cn0KIy0gUkYgUGFyYW1ldGVyIFR1bmluZyAtIwpjbCA8LSBtYWtlUFNPQ0tjbHVzdGVyKDUpIAogIApyZWdpc3RlckRvUGFyYWxsZWwoY2wpIApzZXQuc2VlZCgxMjMpCnQyIDwtIHR1bmVSRihkZl90cmFpblssLTIyXSwgZGZfdHJhaW5bLDIyXSwgCiAgICAgICAgICAgICAgICAgICAgc3RlcEZhY3RvciA9IDAuNSwKICAgICAgICAgICAgICAgICAgICBwbG90ID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICBtdHJ5U3RhcnQgPSAxMCwKICAgICAgICAgICAgICAgICAgICBudHJlZVRyeSA9IDgwMSwgCiAgICAgICAgICAgICAgICAgICAgdHJhY2UgPSBUUlVFLCAKICAgICAgICAgICAgICAgICAgICBpbXByb3ZlID0gMC4wNSkKc3RvcENsdXN0ZXIoY2wpCgpgYGAKYGBge3J9CiMtIFJ1biBSYW5kb20gRm9yZXN0IC0jCmNsIDwtIG1ha2VQU09DS2NsdXN0ZXIoNSkgCiAgCnJlZ2lzdGVyRG9QYXJhbGxlbChjbCkgCnNldC5zZWVkKDEyMykKcmYuZml0MiA8LSByYW5kb21Gb3Jlc3QoZGZfdHJhaW5bLC1jKDEsMildLCB0cmFpbl9sYWJlbHMsIAogICAgICAgICAgICAgICAgICAgICAgICBtdHJ5ID0gMTAsIG50cmVlID0gMTAwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3hpbWl0eSA9IFRSVUUsIG9vYi5wcm94ID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxJbXAgPSBUUlVFKSAgCgpzdG9wQ2x1c3RlcihjbCkKCnJmLmZpdDIKYGBgCgpgYGB7cn0KIy0gUGxvdCByZi5maXQgLSMKcGxvdChyZi5maXQyKQpgYGAKKiBXZSBjYW4gc2VlIHRoYXQgdGhlIG1vZGVsIGhhcyBhIGxvdyBlcnJvciByYXRlLCBsZXRzIHNlZSB0aGUgY29udXNpb24gbWF0cml4IG9mIHRoZSBwcmVkaWN0aW9ucyBvZiB0aGUgdHJhaW5pbmcgc2V0LiAKYGBge3J9CiMtIFBsb3QgY29uZnVzaW9uIG1tYXRyaXggb2YgcHJlZGljdGlvbnMgKC0jCmNvbmZ1c2lvbk1hdHJpeCh0YWJsZSh0cmFpbl9sYWJlbHMsIHJmLmZpdDIkcHJlZGljdGVkKSkKYGBgCiogT3ZlcmFsbCwgaXQgc2VlbXMgdG8gaGF2ZSBoaWdoIGFjY3VyYWN5IGZvciBhbGwgIG9mIHRoZW0sIGhvd2V2ZXIgdGhpcyBtYXkgYmUgYSBzaWduIG9mIG92ZXJmaXR0aW5nLiAKYGBge3J9CiMtIFVzaW5nIFRyYWluZWQgUmFuZG9tIEZvcmVzdCB0byBwcmVkaWN0IHRlc3Qgc2V0IC0jCnByZWQgPSBwcmVkaWN0KHJmLmZpdDIsIGFzLm1hdHJpeChkZl90ZXN0KSkKY29uZnVzaW9uTWF0cml4KHRhYmxlKHRlc3RfbGFiZWxzLCBwcmVkKSkKYGBgCiogIEV4dHJlbWVseSBoaWdoIGFjY3VyYWN5LCBTaWducyBvZiBvdmVyZml0dGluZy4gCmBgYHtyfQpwcm9iID0gcHJlZGljdChyZi5maXQyLCBhcy5tYXRyaXgoZGZfdGVzdCksIHR5cGUgPSAicHJvYiIpCnByb2IKYGBgCmBgYHtyfQojLSAyLUQgTURTIHBsb3QgKERpbTEgdnMgRGltMikgLSMKbWRzMiA8LSBNRFNwbG90KHJmLmZpdDIsIHRyYWluX2xhYmVscywgayA9IDYsIAogICAgICAgICAgICAgICBwY2ggPSAxNiwgcGFsZXR0ZSA9IGMoInNreWJsdWUiLCAib3JhbmdlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ3JlZW4iLCAicGluayIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpCiAgICAgICAgICAgICAgICkKCnBsb3QobWRzMiRwb2ludHNbLCAxXSwgbWRzMiRwb2ludHNbLCAyXSwgCiAgICAgY29sID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICJncmVlbiIsICJwaW5rIiwgCiAgICAgICAgICAgICAicHVycGxlIiwgImJsYWNrIilbYXMubnVtZXJpYyh0cmFpbl9sYWJlbHMpXSwgCiAgICAgbWFpbiA9ICJUeXBlIENsdXN0ZXJpbmciCiAgICAgKQoKbGVnZW5kKCJ0b3BsZWZ0IiwgbGVnZW5kID0gYygiYmFzYWwiLCAiY2VsbF9saW5lIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhFUiIsICJsdW1pbmFsX0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHVtaW5hbF9CIiwgIm5vcm1hbCIpLCAKICAgICAgIHBjaCA9IDE2LCBjb2wgPSBjKCJza3libHVlIiwgIm9yYW5nZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICJwdXJwbGUiLCAiYmxhY2siKSwgCiAgICAgICB0aXRsZSA9ICJMZWdlbmQiCiAgICAgICApCmBgYApgYGB7cn0KIy0gMi1EIE1EUyBwbG90IChEaW0xIHZzIERpbTMpIC0jCnBsb3QobWRzMiRwb2ludHNbLCAxXSwgbWRzMiRwb2ludHNbLCAzXSwgCiAgICAgY29sID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICJncmVlbiIsICJwaW5rIiwgCiAgICAgICAgICAgICAicHVycGxlIiwgImJsYWNrIilbYXMubnVtZXJpYyh0cmFpbl9sYWJlbHMpXSwgCiAgICAgbWFpbiA9ICJUeXBlIENsdXN0ZXJpbmciCiAgICAgKQoKbGVnZW5kKCJ0b3BsZWZ0IiwgbGVnZW5kID0gYygiYmFzYWwiLCAiY2VsbF9saW5lIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhFUiIsICJsdW1pbmFsX0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHVtaW5hbF9CIiwgIm5vcm1hbCIpLCAKICAgICAgIHBjaCA9IDE2LCBjb2wgPSBjKCJza3libHVlIiwgIm9yYW5nZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICJwdXJwbGUiLCAiYmxhY2siKSwgCiAgICAgICB0aXRsZSA9ICJMZWdlbmQiCiAgICAgICApCmBgYApgYGB7cn0KIy0gMi1EIE1EUyBwbG90IChvdGhlciBkaW1lbnNpb25zKSAtIwpmaWcyMSA8LSBwbG90X2x5KHggPSBtZHMyW1sicG9pbnRzIl1dWywxXSwgeSA9IG1kczJbWyJwb2ludHMiXV1bLDJdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyIiwgbW9kZT0ibWFya2VycyIsIAogICAgICAgICAgICAgICAgIGNvbG9yID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpW2FzLm51bWVyaWModHJhaW5fbGFiZWxzKV0pCgpmaWcyMiA8LSBwbG90X2x5KHggPSBtZHMyW1sicG9pbnRzIl1dWywyXSwgeSA9IG1kczJbWyJwb2ludHMiXV1bLDNdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyIiwgbW9kZT0ibWFya2VycyIsIAogICAgICAgICAgICAgICAgIGNvbG9yID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpW2FzLm51bWVyaWModHJhaW5fbGFiZWxzKV0pCgpmaWcyMyA8LSBwbG90X2x5KHggPSBtZHMyW1sicG9pbnRzIl1dWywyXSwgeSA9IG1kczJbWyJwb2ludHMiXV1bLDRdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyIiwgbW9kZT0ibWFya2VycyIsIAogICAgICAgICAgICAgICAgIGNvbG9yID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpW2FzLm51bWVyaWModHJhaW5fbGFiZWxzKV0pCgpmaWcyNCA8LSBwbG90X2x5KHggPSBtZHMyW1sicG9pbnRzIl1dWywyXSwgeSA9IG1kczJbWyJwb2ludHMiXV1bLDVdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyIiwgbW9kZT0ibWFya2VycyIsIAogICAgICAgICAgICAgICAgIGNvbG9yID0gYygic2t5Ymx1ZSIsICJvcmFuZ2UiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpW2FzLm51bWVyaWModHJhaW5fbGFiZWxzKV0pCgpzdWJwbG90KGZpZzIxLCBmaWcyMikKc3VicGxvdChmaWcyMywgZmlnMjQpCmBgYAoKCmBgYHtyfQojLSAzLUQgTURTIHBsb3QgLSMKeDMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW0xIgopCnkzIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltMiIKKQoKejMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW0zIgopCmZpZzI1IDwtIHBsb3RfbHkoeCA9IG1kczJbWyJwb2ludHMiXV1bLDFdLCAKICAgICAgICAgICAgICAgICB5ID0gbWRzMltbInBvaW50cyJdXVssMl0sIAogICAgICAgICAgICAgICAgIHogPSBtZHMyW1sicG9pbnRzIl1dWywzXSwgCiAgICAgICAgICAgICAgICAgdHlwZT0ic2NhdHRlcjNkIiwgbW9kZT0ibWFya2VycyIsIAogICAgICAgICAgICAgICAgIGNvbG9yID0gYygic2t5Ymx1ZSIsIm9yYW5nZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJncmVlbiIsICJwaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpW2FzLm51bWVyaWModHJhaW5fbGFiZWxzKV0KICAgICAgICAgICAgICAgICApCgpmaWcyNSA8LSBmaWcyNSAlPiUgbGF5b3V0KHNjZW5lID0gbGlzdCh4YXhpcyA9IHgzLCB5YXhpcyA9IHkzLCB6YXhpcyA9IHozKSwgdGl0bGUgPSAiM0QgUkYgY2x1c3RlcmluZyB3aXRoIHR5cGUgbGFiZWxsZWQiKQpmaWcyNQpgYGAKYGBge3J9Cgp4MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTEiCikKeTMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW0yIgopCgp6MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTQiCikKZmlnMjYgPC0gcGxvdF9seSh4ID0gbWRzMltbInBvaW50cyJdXVssMV0sIAogICAgICAgICAgICAgICAgIHkgPSBtZHMyW1sicG9pbnRzIl1dWywyXSwgCiAgICAgICAgICAgICAgICAgeiA9IG1kczJbWyJwb2ludHMiXV1bLDRdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyM2QiLCBtb2RlPSJtYXJrZXJzIiwgCiAgICAgICAgICAgICAgICAgY29sb3IgPSBjKCJza3libHVlIiwib3JhbmdlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicHVycGxlIiwgImJsYWNrIilbYXMubnVtZXJpYyh0cmFpbl9sYWJlbHMpXQogICAgICAgICAgICAgICAgICkKCmZpZzI2IDwtIGZpZzI2ICU+JSBsYXlvdXQoc2NlbmUgPSBsaXN0KHhheGlzID0geDMsIHlheGlzID0geTMsIHpheGlzID0gejMpLCB0aXRsZSA9ICIzRCBSRiBjbHVzdGVyaW5nIHdpdGggY2x1c3RlcnMgbGFiZWxsZWQiKQpmaWcyNgoKYGBgCgpgYGB7cn0KeDMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW0xIgopCnkzIDwtIGxpc3QoCiAgdGl0bGUgPSAiRGltMyIKKQoKejMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW00IgopCmZpZzI3IDwtIHBsb3RfbHkoeCA9IG1kczJbWyJwb2ludHMiXV1bLDFdLCAKICAgICAgICAgICAgICAgICB5ID0gbWRzMltbInBvaW50cyJdXVssM10sIAogICAgICAgICAgICAgICAgIHogPSBtZHMyW1sicG9pbnRzIl1dWyw0XSwgCiAgICAgICAgICAgICAgICAgdHlwZT0ic2NhdHRlcjNkIiwgbW9kZT0ibWFya2VycyIsIAogICAgICAgICAgICAgICAgIGNvbG9yID0gYygic2t5Ymx1ZSIsIm9yYW5nZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJncmVlbiIsICJwaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1cnBsZSIsICJibGFjayIpW2FzLm51bWVyaWModHJhaW5fbGFiZWxzKV0KICAgICAgICAgICAgICAgICApCgpmaWcyNyA8LSBmaWcyNyAlPiUgbGF5b3V0KHNjZW5lID0gbGlzdCh4YXhpcyA9IHgzLCB5YXhpcyA9IHkzLCB6YXhpcyA9IHozKSwgdGl0bGUgPSAiM0QgUkYgY2x1c3RlcmluZyB3aXRoIHR5cGUgbGFiZWxsZWQiKQpmaWcyNwpgYGAKCmBgYHtyfQp4MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTIiCikKeTMgPC0gbGlzdCgKICB0aXRsZSA9ICJEaW0zIgopCgp6MyA8LSBsaXN0KAogIHRpdGxlID0gIkRpbTQiCikKZmlnMjggPC0gcGxvdF9seSh4ID0gbWRzMltbInBvaW50cyJdXVssMl0sIAogICAgICAgICAgICAgICAgIHkgPSBtZHMyW1sicG9pbnRzIl1dWywzXSwgCiAgICAgICAgICAgICAgICAgeiA9IG1kczJbWyJwb2ludHMiXV1bLDRdLCAKICAgICAgICAgICAgICAgICB0eXBlPSJzY2F0dGVyM2QiLCBtb2RlPSJtYXJrZXJzIiwgCiAgICAgICAgICAgICAgICAgY29sb3IgPSBjKCJza3libHVlIiwib3JhbmdlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyZWVuIiwgInBpbmsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicHVycGxlIiwgImJsYWNrIilbYXMubnVtZXJpYyh0cmFpbl9sYWJlbHMpXQogICAgICAgICAgICAgICAgICkKCmZpZzI4IDwtIGZpZzI4ICU+JSBsYXlvdXQoc2NlbmUgPSBsaXN0KHhheGlzID0geDMsIHlheGlzID0geTMsIHpheGlzID0gejMpLCB0aXRsZSA9ICIzRCBSRiBjbHVzdGVyaW5nIHdpdGggY2x1c3RlcnMgbGFiZWxsZWQiKQpmaWcyOApgYGAKYGBge3J9CnRyZWUgPC0gZ2V0VHJlZShyZi5maXQyLCA2LCBsYWJlbFZhcj1UUlVFKSAlPiUKICAgIHRpYmJsZTo6cm93bmFtZXNfdG9fY29sdW1uKCkgJT4lCiAgICAjIG1ha2UgbGVhZiBzcGxpdCBwb2ludHMgdG8gTkEsIHNvIHRoZSAwcyB3b24ndCBnZXQgcGxvdHRlZAogICAgbXV0YXRlKGBzcGxpdCBwb2ludGAgPSBpZmVsc2UoaXMubmEocHJlZGljdGlvbiksIGBzcGxpdCBwb2ludGAsIE5BKSkKICAKICAjIHByZXBhcmUgZGF0YSBmcmFtZSBmb3IgZ3JhcGgKICBncmFwaF9mcmFtZSA8LSBkYXRhLmZyYW1lKGZyb20gPSByZXAodHJlZSRyb3duYW1lLCAyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvID0gYyh0cmVlJGBsZWZ0IGRhdWdodGVyYCwgdHJlZSRgcmlnaHQgZGF1Z2h0ZXJgKSkKICAKICAjIGNvbnZlcnQgdG8gZ3JhcGggYW5kIGRlbGV0ZSB0aGUgbGFzdCBub2RlIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBwbG90CiAgZ3JhcGggPC0gZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGdyYXBoX2ZyYW1lKSAlPiUKICAgIGRlbGV0ZV92ZXJ0aWNlcygiMCIpCiAgCiAgIyBzZXQgbm9kZSBsYWJlbHMKICBWKGdyYXBoKSRub2RlX2xhYmVsIDwtIGdzdWIoIl8iLCAiICIsIGFzLmNoYXJhY3Rlcih0cmVlJGBzcGxpdCB2YXJgKSkKICBWKGdyYXBoKSRsZWFmX2xhYmVsIDwtIGFzLmNoYXJhY3Rlcih0cmVlJHByZWRpY3Rpb24pCiAgVihncmFwaCkkc3BsaXQgPC0gYXMuY2hhcmFjdGVyKHJvdW5kKHRyZWUkYHNwbGl0IHBvaW50YCwgZGlnaXRzID0gMikpCiAgCiAgIyBwbG90CiAgcGxvdCA8LSBnZ3JhcGgoZ3JhcGgsICdkZW5kcm9ncmFtJykgKyAKICAgIHRoZW1lX2J3KCkgKwogICAgZ2VvbV9lZGdlX2xpbmsoKSArCiAgICBnZW9tX25vZGVfcG9pbnQoKSArCiAgICBnZW9tX25vZGVfbGFiZWwoYWVzKGxhYmVsID0gc3BsaXQpLCB2anVzdCA9IDIuNSwgCiAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUUlVFLCBmaWxsID0gIndoaXRlIikgKwogICAgZ2VvbV9ub2RlX2xhYmVsKGFlcyhsYWJlbCA9IGxlYWZfbGFiZWwsIGZpbGwgPSBsZWFmX2xhYmVsKSwgCiAgICAgICAgICAgICAgICAgICAgbmEucm0gPSBUUlVFLCByZXBlbCA9IFRSVUUsIGNvbG91ciA9ICJ3aGl0ZSIsIAogICAgICAgICAgICAgICAgICAgIGZvbnRmYWNlID0gImJvbGQiLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgICB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ3aGl0ZSIpLAogICAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgYXhpcy5saW5lID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgIGF4aXMudGlja3MgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxOCkpCiAgCiAgcHJpbnQocGxvdCkKCgpgYGAKCgoKCgoKCg==